下面这代码有一点小问题!~ 请各位大哥帮忙解决!~
var
Form1: TForm1;
myarray:array[0..19] of integer;
i:integer =0;
addcount:integer=0;//判断是否win
judgechecked:boolean =false ;
buttonB:integer=101;
buttonA,buttonC:integer;implementation{$R *.dfm}
//-----------------------------------------------------------
procedure initilaized();
var mycount:integer;
begin
addcount := 0;
i:=0;
judgechecked:=false;
buttonB:=1;
buttonA:=0;
form1.button2.Caption:='exit';
for mycount:=0 to 19 do
form1.toolbar1.Buttons[mycount].Enabled:=true;
form1.ToolBar1.Enabled:=false;
for mycount:=0 to 19 do
form1.toolbar1.Buttons[mycount].ImageIndex:=18;
form1.Button1.Enabled:=true;
form1.Timer1.Enabled:=false;
end;
//建立随机函数,myarray[]是全局数组 --------------------------
procedure RandomArray();
var
i,j,n: integer;
s: integer;
begin
randomize;//先用随机数初始化数组;
for i:=0 to 19 do
begin
myarray[i]:=random(20);
end; for i:=0 to 18 do
begin
for j:=i+1 to 19 do
begin
if myarray[i]=myarray[j] then
begin
repeat
n:=0; //设定的计数器,下面每发现一次重复就n+1;
myarray[j]:=random(19);
for s:=0 to i do
begin
if myarray[j]=myarray[s]
then n:=n+1;
end;
until n=0;//直到n=0即无重复才跳出repeat语句.
end;
end;
end;
//将10-19的数减10。
for i:=0 to 19 do
case myarray[i] of
10..19: myarray[i]:=myarray[i]-10;
end;
end;//用于判断------------------------------------
procedure checked(buttonA:integer);
begin
form1.toolbar1.buttons[buttonA].imageindex:=myarray[buttonA];
if judgechecked=false then
begin
form1.toolbar1.buttons[buttonA].Enabled:=false;
buttonB:=buttonA;
judgechecked:=true;
end
else
begin
if myarray[buttonA]=myarray[buttonB] then
begin
form1.toolbar1.buttons[buttonA].Enabled:=false;
form1.toolbar1.buttons[buttonB].Enabled:=false;
addcount:=addcount+1;
judgechecked:=false;
end
else
begin
buttonC:=buttonA;
judgechecked:=false;
form1.Timer2.Enabled:=true;
form1.toolbar1.buttons[buttonB].Enabled:=true;
end;
end;
if addcount =10 then
begin
initilaized();
end;
end;
//--------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
mycount:integer;
begin
i:=0;
timer1.Enabled:=false;
RandomArray();
for mycount:=0 to 19 do
begin
toolbar1.Buttons[mycount].ImageIndex:=myArray[mycount] ;
timer1.Enabled:=true;
end;
button2.Caption:='stop';
button1.Enabled:=false;
end;
//--------------------------------------------------------------
procedure TForm1.Timer1Timer(Sender: TObject);
begin
toolbar1.Buttons[i].ImageIndex:=18; i:=i+1;
if i=20 then
begin
toolbar1.Enabled:=true;
timer1.Enabled:=false;
I:=0;
end;
end;//------------------------------------------------------
procedure TForm1.ToolButton1Click(Sender: TObject);
begin
checked(toolbutton1.Index);
end;procedure TForm1.ToolButton2Click(Sender: TObject);
begin
checked(toolbutton2.Index);
end;procedure TForm1.ToolButton3Click(Sender: TObject);
begin
checked(toolbutton3.Index);
end;procedure TForm1.ToolButton4Click(Sender: TObject);
begin
checked(toolbutton4.Index);
end;procedure TForm1.ToolButton5Click(Sender: TObject);
begin
checked(toolbutton5.Index);
end;procedure TForm1.ToolButton6Click(Sender: TObject);
begin
checked(toolbutton6.Index);
end;procedure TForm1.ToolButton7Click(Sender: TObject);
begin
checked(toolbutton7.Index);
end;procedure TForm1.ToolButton8Click(Sender: TObject);
begin
checked(toolbutton8.Index);
end;procedure TForm1.ToolButton9Click(Sender: TObject);
begin
checked(toolbutton9.Index);
end;procedure TForm1.ToolButton10Click(Sender: TObject);
begin
checked(toolbutton10.Index);
end;procedure TForm1.ToolButton11Click(Sender: TObject);
begin
checked(toolbutton11.Index);
end;procedure TForm1.ToolButton12Click(Sender: TObject);
begin
checked(toolbutton12.Index);
end;procedure TForm1.ToolButton13Click(Sender: TObject);
begin
checked(toolbutton13.Index);
end;procedure TForm1.ToolButton14Click(Sender: TObject);
begin
checked(toolbutton14.Index);
end;procedure TForm1.ToolButton15Click(Sender: TObject);
begin
checked(toolbutton15.Index);
end;procedure TForm1.ToolButton16Click(Sender: TObject);
begin
checked(toolbutton16.Index);
end;procedure TForm1.ToolButton17Click(Sender: TObject);
begin
checked(toolbutton17.Index);
end;procedure TForm1.ToolButton18Click(Sender: TObject);
begin
checked(toolbutton18.Index);
end;procedure TForm1.ToolButton19Click(Sender: TObject);
begin
checked(toolbutton19.Index);
end;procedure TForm1.ToolButton20Click(Sender: TObject);
begin
checked(toolbutton20.Index);
end;
//-----------------------------------------------------
procedure TForm1.Timer2Timer(Sender: TObject);
begin
form1.toolbar1.buttons[buttonC].ImageIndex:=18;
form1.toolbar1.buttons[buttonB].ImageIndex:=18;
timer2.Enabled:=false;
end;
//--------------------------------------------------------
procedure TForm1.Button2Click(Sender: TObject);
begin
if button2.Caption='exit' then
begin
close
end
Else
initilaized();
button1.Enabled:=true;
end;
//---------------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
toolbar1.Images:=Imagelist1;
toolbar1.DisabledImages:=Imagelist1;
initilaized();
end; (1)当点了下button1后程序运行,再点button2(button2='stop') 反复点几次,最后一次点button1程序不运行了!~
(2)运行程序后,玩游戏成功了,再点button1程序也不运行了!~
var
Form1: TForm1;
myarray:array[0..19] of integer;
i:integer =0;
addcount:integer=0;//判断是否win
judgechecked:boolean =false ;
buttonB:integer=101;
buttonA,buttonC:integer;implementation{$R *.dfm}
//-----------------------------------------------------------
procedure initilaized();
var mycount:integer;
begin
addcount := 0;
i:=0;
judgechecked:=false;
buttonB:=1;
buttonA:=0;
form1.button2.Caption:='exit';
for mycount:=0 to 19 do
form1.toolbar1.Buttons[mycount].Enabled:=true;
form1.ToolBar1.Enabled:=false;
for mycount:=0 to 19 do
form1.toolbar1.Buttons[mycount].ImageIndex:=18;
form1.Button1.Enabled:=true;
form1.Timer1.Enabled:=false;
end;
//建立随机函数,myarray[]是全局数组 --------------------------
procedure RandomArray();
var
i,j,n: integer;
s: integer;
begin
randomize;//先用随机数初始化数组;
for i:=0 to 19 do
begin
myarray[i]:=random(20);
end; for i:=0 to 18 do
begin
for j:=i+1 to 19 do
begin
if myarray[i]=myarray[j] then
begin
repeat
n:=0; //设定的计数器,下面每发现一次重复就n+1;
myarray[j]:=random(19);
for s:=0 to i do
begin
if myarray[j]=myarray[s]
then n:=n+1;
end;
until n=0;//直到n=0即无重复才跳出repeat语句.
end;
end;
end;
//将10-19的数减10。
for i:=0 to 19 do
case myarray[i] of
10..19: myarray[i]:=myarray[i]-10;
end;
end;//用于判断------------------------------------
procedure checked(buttonA:integer);
begin
form1.toolbar1.buttons[buttonA].imageindex:=myarray[buttonA];
if judgechecked=false then
begin
form1.toolbar1.buttons[buttonA].Enabled:=false;
buttonB:=buttonA;
judgechecked:=true;
end
else
begin
if myarray[buttonA]=myarray[buttonB] then
begin
form1.toolbar1.buttons[buttonA].Enabled:=false;
form1.toolbar1.buttons[buttonB].Enabled:=false;
addcount:=addcount+1;
judgechecked:=false;
end
else
begin
buttonC:=buttonA;
judgechecked:=false;
form1.Timer2.Enabled:=true;
form1.toolbar1.buttons[buttonB].Enabled:=true;
end;
end;
if addcount =10 then
begin
initilaized();
end;
end;
//--------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
mycount:integer;
begin
i:=0;
timer1.Enabled:=false;
RandomArray();
for mycount:=0 to 19 do
begin
toolbar1.Buttons[mycount].ImageIndex:=myArray[mycount] ;
timer1.Enabled:=true;
end;
button2.Caption:='stop';
button1.Enabled:=false;
end;
//--------------------------------------------------------------
procedure TForm1.Timer1Timer(Sender: TObject);
begin
toolbar1.Buttons[i].ImageIndex:=18; i:=i+1;
if i=20 then
begin
toolbar1.Enabled:=true;
timer1.Enabled:=false;
I:=0;
end;
end;//------------------------------------------------------
procedure TForm1.ToolButton1Click(Sender: TObject);
begin
checked(toolbutton1.Index);
end;procedure TForm1.ToolButton2Click(Sender: TObject);
begin
checked(toolbutton2.Index);
end;procedure TForm1.ToolButton3Click(Sender: TObject);
begin
checked(toolbutton3.Index);
end;procedure TForm1.ToolButton4Click(Sender: TObject);
begin
checked(toolbutton4.Index);
end;procedure TForm1.ToolButton5Click(Sender: TObject);
begin
checked(toolbutton5.Index);
end;procedure TForm1.ToolButton6Click(Sender: TObject);
begin
checked(toolbutton6.Index);
end;procedure TForm1.ToolButton7Click(Sender: TObject);
begin
checked(toolbutton7.Index);
end;procedure TForm1.ToolButton8Click(Sender: TObject);
begin
checked(toolbutton8.Index);
end;procedure TForm1.ToolButton9Click(Sender: TObject);
begin
checked(toolbutton9.Index);
end;procedure TForm1.ToolButton10Click(Sender: TObject);
begin
checked(toolbutton10.Index);
end;procedure TForm1.ToolButton11Click(Sender: TObject);
begin
checked(toolbutton11.Index);
end;procedure TForm1.ToolButton12Click(Sender: TObject);
begin
checked(toolbutton12.Index);
end;procedure TForm1.ToolButton13Click(Sender: TObject);
begin
checked(toolbutton13.Index);
end;procedure TForm1.ToolButton14Click(Sender: TObject);
begin
checked(toolbutton14.Index);
end;procedure TForm1.ToolButton15Click(Sender: TObject);
begin
checked(toolbutton15.Index);
end;procedure TForm1.ToolButton16Click(Sender: TObject);
begin
checked(toolbutton16.Index);
end;procedure TForm1.ToolButton17Click(Sender: TObject);
begin
checked(toolbutton17.Index);
end;procedure TForm1.ToolButton18Click(Sender: TObject);
begin
checked(toolbutton18.Index);
end;procedure TForm1.ToolButton19Click(Sender: TObject);
begin
checked(toolbutton19.Index);
end;procedure TForm1.ToolButton20Click(Sender: TObject);
begin
checked(toolbutton20.Index);
end;
//-----------------------------------------------------
procedure TForm1.Timer2Timer(Sender: TObject);
begin
form1.toolbar1.buttons[buttonC].ImageIndex:=18;
form1.toolbar1.buttons[buttonB].ImageIndex:=18;
timer2.Enabled:=false;
end;
//--------------------------------------------------------
procedure TForm1.Button2Click(Sender: TObject);
begin
if button2.Caption='exit' then
begin
close
end
Else
initilaized();
button1.Enabled:=true;
end;
//---------------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
toolbar1.Images:=Imagelist1;
toolbar1.DisabledImages:=Imagelist1;
initilaized();
end; (1)当点了下button1后程序运行,再点button2(button2='stop') 反复点几次,最后一次点button1程序不运行了!~
(2)运行程序后,玩游戏成功了,再点button1程序也不运行了!~
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货