📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, WinSkinData;
type
TForm1 = class(TForm)
pnl1: TPanel;
pnl2: TPanel;
pnl3: TPanel;
pnl4: TPanel;
pnl6: TPanel;
img1: TImage;
btn1: TSpeedButton;
btn2: TSpeedButton;
btn3: TSpeedButton;
btn4: TSpeedButton;
btn5: TSpeedButton;
btn6: TSpeedButton;
btn7: TSpeedButton;
btn8: TSpeedButton;
btn9: TSpeedButton;
btn10: TSpeedButton;
btn11: TSpeedButton;
btn12: TSpeedButton;
pnl7: TPanel;
pnl8: TPanel;
pnl9: TPanel;
pnl10: TPanel;
pnl11: TPanel;
pnl12: TPanel;
pnl13: TPanel;
pnl14: TPanel;
pnl38: TPanel;
pnl15: TPanel;
pnl16: TPanel;
pnl17: TPanel;
pnl18: TPanel;
pnl19: TPanel;
pnl20: TPanel;
pnl21: TPanel;
pnl22: TPanel;
pnl23: TPanel;
pnl24: TPanel;
pnl25: TPanel;
pnl26: TPanel;
pnl27: TPanel;
pnl28: TPanel;
pnl29: TPanel;
pnl30: TPanel;
pnl31: TPanel;
pnl32: TPanel;
pnl33: TPanel;
pnl34: TPanel;
pnl35: TPanel;
pnl36: TPanel;
pnl37: TPanel;
pnl39: TPanel;
pnl40: TPanel;
pnl41: TPanel;
pnl42: TPanel;
pnl43: TPanel;
pnl44: TPanel;
pnl46: TPanel;
pnl47: TPanel;
pnl48: TPanel;
pnl49: TPanel;
pnl50: TPanel;
pnl51: TPanel;
pnl52: TPanel;
pnl45: TPanel;
pnl53: TPanel;
pnl54: TPanel;
pnl55: TPanel;
pnl56: TPanel;
pnl57: TPanel;
pnl58: TPanel;
pnl59: TPanel;
pnl60: TPanel;
pnl61: TPanel;
pnl62: TPanel;
pnl63: TPanel;
pnl64: TPanel;
pnl65: TPanel;
pnl66: TPanel;
pnl67: TPanel;
pnl68: TPanel;
pnl69: TPanel;
pnl70: TPanel;
pnl71: TPanel;
pnl72: TPanel;
pnl73: TPanel;
pnl74: TPanel;
pnl75: TPanel;
pnl76: TPanel;
pnl77: TPanel;
pnl78: TPanel;
pnl79: TPanel;
pnl80: TPanel;
pnl81: TPanel;
pnl82: TPanel;
pnl83: TPanel;
pnl84: TPanel;
pnl85: TPanel;
pnl86: TPanel;
pnl87: TPanel;
pnl88: TPanel;
pnl89: TPanel;
pnl90: TPanel;
pnl91: TPanel;
pnl92: TPanel;
pnl93: TPanel;
pnl94: TPanel;
pnl95: TPanel;
pnl96: TPanel;
pnl97: TPanel;
pnl98: TPanel;
pnl99: TPanel;
pnl100: TPanel;
pnl101: TPanel;
pnl102: TPanel;
pnl103: TPanel;
pnl104: TPanel;
pnl105: TPanel;
pnl106: TPanel;
pnl107: TPanel;
pnl108: TPanel;
lbl1: TLabel;
lbl2: TLabel;
lbl3: TLabel;
lbl4: TLabel;
lbl5: TLabel;
lbl6: TLabel;
lbl7: TLabel;
lbl8: TLabel;
lbl9: TLabel;
lbl10: TLabel;
lbl11: TLabel;
lbl12: TLabel;
lbl13: TLabel;
lbl14: TLabel;
lbl15: TLabel;
lbl16: TLabel;
lbl17: TLabel;
lbl18: TLabel;
img2: TImage;
tmr1: TTimer;
img3: TImage;
img4: TImage;
procedure FormCreate(Sender: TObject);
procedure tmr1Timer(Sender: TObject);
procedure btn1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure pnl6MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure btn10Click(Sender: TObject);
procedure btn11Click(Sender: TObject);
procedure btn12Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
abtn : array[0..9]of TSpeedButton;
apnl : array[1..80]of TPanel;
procedure setpos(bu:TSpeedButton;Poi:TPoint );
function getpo(num:integer):TPoint;
procedure drawpnl(pnln:TPanel);
procedure change;
public
list : TStrings;
shitnum: Integer;
img: Timage;
{ Public declarations }
end;
var
Form1: TForm1;
pp: Integer=0;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
abtn[0] := btn1;
abtn[1] := btn2;
abtn[2] := btn3;
abtn[3] := btn4;
abtn[4] := btn5;
abtn[5] := btn6;
abtn[6] := btn7;
abtn[7] := btn8;
abtn[8] := btn9;
abtn[9] := btn10;
apnl[1] := pnl29; apnl[2] := pnl30; apnl[3] := pnl31; apnl[4] := pnl32; apnl[5] := pnl33;
apnl[6] := pnl34; apnl[7] := pnl35; apnl[8] := pnl36; apnl[9] := pnl37; apnl[10] := pnl38;
apnl[11] := pnl39; apnl[12] := pnl40; apnl[13] := pnl41; apnl[14] := pnl42; apnl[15] := pnl43;
apnl[16] := pnl44; apnl[17] := pnl45; apnl[18] := pnl46; apnl[19] := pnl47; apnl[20] := pnl48;
apnl[21] := pnl49; apnl[22] := pnl50; apnl[23] := pnl51; apnl[24] := pnl52; apnl[25] := pnl53;
apnl[26] := pnl54; apnl[27] := pnl55; apnl[28] := pnl56; apnl[29] := pnl57; apnl[30] := pnl58;
apnl[31] := pnl59; apnl[32] := pnl60; apnl[33] := pnl61; apnl[34] := pnl62; apnl[35] := pnl63;
apnl[36] := pnl64; apnl[37] := pnl65; apnl[38] := pnl66; apnl[39] := pnl67; apnl[40] := pnl68;
apnl[41] := pnl69; apnl[42] := pnl70; apnl[43] := pnl71; apnl[44] := pnl72; apnl[45] := pnl73;
apnl[46] := pnl74; apnl[47] := pnl75; apnl[48] := pnl76; apnl[49] := pnl77; apnl[50] := pnl78;
apnl[51] := pnl79; apnl[52] := pnl80; apnl[53] := pnl81; apnl[54] := pnl82; apnl[55] := pnl83;
apnl[56] := pnl84; apnl[57] := pnl85; apnl[58] := pnl86; apnl[59] := pnl87; apnl[60] := pnl88;
apnl[61] := pnl89; apnl[62] := pnl90; apnl[63] := pnl91; apnl[64] := pnl92; apnl[65] := pnl93;
apnl[66] := pnl94; apnl[67] := pnl95; apnl[68] := pnl96; apnl[69] := pnl97; apnl[70] := pnl98;
apnl[71] := pnl99; apnl[72] := pnl100; apnl[73] := pnl101; apnl[74] := pnl102; apnl[75] := pnl103;
apnl[76] := pnl104; apnl[77] := pnl105; apnl[78] := pnl106; apnl[79] := pnl107; apnl[80] := pnl108;
list := TStringList.Create;
img := Timage.Create(nil);
change;
end;
function TForm1.getpo(num: integer): TPoint;
begin
Result := Point(75+round(62*sin(num/40.0*2*pi)),
90-round(62*cos(num/40.0*2*pi)));
end;
procedure TForm1.setpos(bu: TSpeedButton; Poi: TPoint);
begin
bu.Left := Poi.X;
bu.Top := Poi.Y;
end;
procedure TForm1.tmr1Timer(Sender: TObject);
var
I: Integer;
begin
inc(pp);
for i := 0 to 9 do
begin
setpos(abtn[i],getpo(pp+i*4));
end;
if pp=maxint then
close;
end;
procedure TForm1.btn1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
tmr1.Enabled := False;
end;
procedure TForm1.pnl6MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
tmr1.Enabled := True;
end;
procedure TForm1.btn10Click(Sender: TObject);
begin
if not img3.Visible then
begin
shitnum := TSpeedButton(Sender).Tag;
img3.Visible := True;
//showmessage(ExtractFileDir(ParamStr(0)));
btn11.Glyph.LoadFromFile(ExtractFilePath(ParamStr(0))+'bmp\delete2.bmp');
Exit;
end;
if img3.Visible then
begin
img3.Visible := False;
img4.Visible := true;
btn12.Glyph.LoadFromFile(ExtractFilePath(ParamStr(0))+'bmp\sure2.bmp');
shitnum := shitnum*10 + TSpeedButton(Sender).Tag;
end;
end;
procedure TForm1.btn11Click(Sender: TObject);
begin
if (not img3.Visible) or (not img4.Visible) then
;
if img3.Visible then
begin
img3.Visible := False;
Exit;
end;
if img4.Visible then
begin
img4.Visible := False;
Exit;
end;
end;
procedure TForm1.btn12Click(Sender: TObject);
var
i: Integer;
begin
if img4.Visible then
begin
list.Add(inttostr(shitnum));
img4.Visible := False;
btn11.Glyph.LoadFromFile(ExtractFilePath(ParamStr(0))+'bmp\delete.bmp');
btn12.Glyph.LoadFromFile(ExtractFilePath(ParamStr(0))+'bmp\sure.bmp');
for i := 1 to 80 do
begin
apnl[i].Color := cl3DDkShadow;
end;
change;
if list.Count =3 then
begin
list.SaveToFile(ExtractFilePath(ParamStr(0))+'data.txt');
list.Clear;
end;
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
list.Free;
img.Free;
end;
procedure TForm1.drawpnl(pnln: TPanel);
begin
img.Parent := pnln;
img.Align := alClient;
img.Picture.LoadFromFile(ExtractFilePath(ParamStr(0))+'bmp\key.bmp');
end;
procedure TForm1.change;
var
i, ichange, iran: Integer;
ide,n: Integer;
begin
Randomize;
iran := Random(79)+1;
drawpnl(apnl[iran]);
ichange := iran mod 8;
//列=====================
for i := 1 to 80 do
begin
if i mod 8 = ichange then
apnl[i].Color := $00C08000;
end;
//========================
//行 =============================
//在第一个位置
if ichange=1 then
begin
for n := 1 to 7 do
begin
apnl[iran+n].Color := $00C08000;
end;
Exit;
end;
//在最后一个位置
if ichange=0 then
begin
for n := 1 to 7 do
begin
apnl[iran-n].Color := $00C08000;
end;
Exit;
end;
//在中间位置
ide := 8-ichange;
for n := 1 to ide do
begin
apnl[iran+n].Color := $00C08000;
end;
for n := 1 to (7-ide) do
begin
apnl[iran-n].Color := $00C08000;
end;
//=================================
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -