下面这代码有一点小问题!~     请各位大哥帮忙解决!~
     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程序也不运行了!~