Показать сообщение отдельно
  #1  
Старый 21.04.2014, 00:01
Аватар для hsMapk
hsMapk hsMapk вне форума
Новичок
 
Регистрация: 17.04.2014
Сообщения: 60
Версия Delphi: Delphi 7
Репутация: 5
Стрелка Почему не выполняется (StringGrid)

Ошибок не выдаёт и не зависает, но ничего не выполняется!! В чём дело, помогите!

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin

  RANDOMIZE;
  i:=0;

   while (i<=12) do
   begin
     i:=i+1;
     ACol:=Random(10);
     ARow:=Random(10);
      if StringGrid1.Cells[ACol,ARow]='' then
             begin

               if ((ACol>=1) and (ACol<=8)) and ((ARow>=1) and (ARow<=8)) then
               begin
                 if (StringGrid1.Cells[ACol-1,ARow-1]<>'') and
                    (StringGrid1.Cells[ACol+1,ARow+1]<>'') and
                    (StringGrid1.Cells[ACol-1,ARow]<>'')   and
                    (StringGrid1.Cells[ACol,ARow-1]<>'')   and
                    (StringGrid1.Cells[ACol+1,ARow]<>'')   and
                    (StringGrid1.Cells[ACol,ARow+1]<>'')   and
                    (StringGrid1.Cells[ACol-1,ARow+1]<>'') and
                    (StringGrid1.Cells[ACol+1,ARow-1]<>'') then
                    begin
                      StringGrid1.Cells[ACol,ARow]:=IntToStr(Random(5));
                      StringGrid1.Cells[ACol-1,ARow-1]:='';
                      StringGrid1.Cells[ACol+1,ARow+1]:='';
                      StringGrid1.Cells[ACol-1,ARow]:='';
                      StringGrid1.Cells[ACol,ARow-1]:='';
                      StringGrid1.Cells[ACol+1,ARow]:='';
                      StringGrid1.Cells[ACol,ARow+1]:='';
                      StringGrid1.Cells[ACol-1,ARow+1]:='';
                      StringGrid1.Cells[ACol+1,ARow-1]:='';
                    end;
               end;



               if (ACol=0) and (ARow=0) then
               begin
                 if (StringGrid1.Cells[ACol,ARow+1]<>'') and
                    (StringGrid1.Cells[ACol+1,ARow+1]<>'') and
                    (StringGrid1.Cells[ACol+1,ARow]<>'') then
                    begin
                      StringGrid1.Cells[ACol,ARow]:=IntToStr(Random(5));
                      StringGrid1.Cells[ACol,ARow+1]:='';
                      StringGrid1.Cells[ACol+1,ARow+1]:='';
                      StringGrid1.Cells[ACol+1,ARow]:='';
                    end;
               end;

               if (ACol=0) and (ARow=9) then
               begin
                 if (StringGrid1.Cells[ACol+1,ARow]<>'') and
                    (StringGrid1.Cells[ACol+1,ARow-1]<>'') and
                    (StringGrid1.Cells[ACol-1,ARow]<>'') then
                    begin
                      StringGrid1.Cells[ACol,ARow]:=IntToStr(Random(5));
                      StringGrid1.Cells[ACol+1,ARow]:='';
                      StringGrid1.Cells[ACol+1,ARow-1]:='';
                      StringGrid1.Cells[ACol-1,ARow]:='';
                    end;
               end;

               if (ACol=9) and (ACol=0) then
               begin
                 if (StringGrid1.Cells[ACol,ARow+1]<>'') and
                    (StringGrid1.Cells[ACol-1,ARow+1]<>'') and
                    (StringGrid1.Cells[ACol-1,ARow]<>'') then
                    begin
                      StringGrid1.Cells[ACol,ARow]:=IntToStr(Random(5));
                      StringGrid1.Cells[ACol,ARow+1]:='';
                      StringGrid1.Cells[ACol-1,ARow+1]:='';
                      StringGrid1.Cells[ACol-1,ARow]:='';
                    end;
               end;

               if (ACol=9) and (ARow=9) then
               begin
                 if (StringGrid1.Cells[ACol,ARow-1]<>'') and
                    (StringGrid1.Cells[ACol-1,ARow-1]<>'') and
                    (StringGrid1.Cells[ACol-1,ARow]<>'') then
                    begin
                      StringGrid1.Cells[ACol,ARow]:=IntToStr(Random(5));
                      StringGrid1.Cells[ACol,ARow-1]:='';
                      StringGrid1.Cells[ACol-1,ARow-1]:='';
                      StringGrid1.Cells[ACol-1,ARow]:='';
                    end;
               end;


               if (ACol=0) and (ARow<9) and (ARow>0) then
               begin
                 if (StringGrid1.Cells[ACol,ARow-1]<>'') and
                    (StringGrid1.Cells[ACol,ARow+1]<>'') and
                    (StringGrid1.Cells[ACol+1,ARow]<>'') and
                    (StringGrid1.Cells[ACol+1,ARow-1]<>'') and
                    (StringGrid1.Cells[ACol+1,ARow+1]<>'') then
                    begin
                      StringGrid1.Cells[ACol,ARow]:=inttostr(Random(5));
                      StringGrid1.Cells[ACol,ARow-1]:='';
                      StringGrid1.Cells[ACol,ARow+1]:='';
                      StringGrid1.Cells[ACol+1,ARow]:='';
                      StringGrid1.Cells[ACol+1,ARow-1]:='';
                      StringGrid1.Cells[ACol+1,ARow+1]:='';
                    end;
               end;

               if (ACol=9) and (ARow<9) and (ARow>0) then
               begin
                 if (StringGrid1.Cells[ACol-1,ARow-1]<>'') and
                    (StringGrid1.Cells[ACol-1,ARow]<>'') and
                    (StringGrid1.Cells[ACol-1,ARow+1]<>'') and
                    (StringGrid1.Cells[ACol,ARow-1]<>'') and
                    (StringGrid1.Cells[ACol,ARow+1]<>'') then
                    begin
                      StringGrid1.Cells[ACol,ARow]:=inttostr(Random(5));
                      StringGrid1.Cells[ACol-1,ARow-1]:='';
                      StringGrid1.Cells[ACol-1,ARow]:='';
                      StringGrid1.Cells[ACol-1,ARow+1]:='';
                      StringGrid1.Cells[ACol,ARow-1]:='';
                      StringGrid1.Cells[ACol,ARow+1]:='';
                    end;
               end;

               if (ARow=0) then
               begin
                 if (StringGrid1.Cells[ACol-1,ARow]<>'') and
                    (StringGrid1.Cells[ACol+1,ARow]<>'') and
                    (StringGrid1.Cells[ACol+1,ARow+1]<>'') and
                    (StringGrid1.Cells[ACol,ARow+1]<>'') and
                    (StringGrid1.Cells[ACol-1,ARow+1]<>'') then
                    begin
                      StringGrid1.Cells[ACol,ARow]:=inttostr(Random(5));
                      StringGrid1.Cells[ACol+1,ARow]:='';
                      StringGrid1.Cells[ACol-1,ARow]:='';
                      StringGrid1.Cells[ACol+1,ARow+1]:='';
                      StringGrid1.Cells[ACol,ARow+1]:='';
                      StringGrid1.Cells[ACol-1,ARow+1]:='';
                    end;
               end;

               if(ARow=9) then
               begin
                 if (StringGrid1.Cells[ACol-1,ARow]<>'') and
                    (StringGrid1.Cells[ACol+1,ARow]<>'') and
                    (StringGrid1.Cells[ACol,ARow-1]<>'') and
                    (StringGrid1.Cells[ACol-1,ARow-1]<>'') and
                    (StringGrid1.Cells[ACol+1,ARow-1]<>'') then
                    begin
                      StringGrid1.Cells[ACol,ARow]:=inttostr(Random(5));
                      StringGrid1.Cells[ACol-1,ARow]:='';
                      StringGrid1.Cells[ACol+1,ARow]:='';
                      StringGrid1.Cells[ACol,ARow-1]:='';
                      StringGrid1.Cells[ACol-1,ARow-1]:='';
                      StringGrid1.Cells[ACol+1,ARow-1]:='';
                    end;

                     {repeat
                      ACol:=Random(10);
                      ARow:=Random(10);
                      until(ACol>0) and (ACol<9) and (ARow>0) and (ARow<9);}
             end;
       end;
   end;

end;
Ответить с цитированием