Показать сообщение отдельно
  #8  
Старый 03.06.2013, 13:23
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от bleex
Я вставил после каждого закрашивания, но работает нормально только в проверке (при закрашивании зеленым) если вставлять только в начале цикла (после желтого) проходит до 3го элемента и виснет, тоже самое если после закрашивания красным..

Код:
procedure TForm5.Timer2Timer(Sender: TObject);
var
  a: integer;
begin
  if find.checked=true then
    begin
      k:= strtoint(edit1.Text);
      for i:= 1 to m do
        begin
          //y:= i;
          //yellow;
          lbl1[i].Color:= clYellow;
          application.ProcessMessages;
          Sleep(500);
          if lbl1[i].height=k then
            begin
              //g:= i;
              //green
              lbl1[i].Color:= clGreen;
              lbl2[i].Font.Color:= clGreen;
              application.ProcessMessages;
              Sleep(500);
              //showmessage('find ', k);
              //exit
            end
          else
              //r:= i;
              //Red;
              lbl1[i].Color:= clRed;
              application.ProcessMessages;
              Sleep(500);
              //exit;
              //i:= i+1;
            end;
    end;
end;
У тебя просто таймер срабатывает повторно ещё до того как проработает весь цикл от предыдущего срабатывания таймера. При входе в обработчик таймера отключай его (Timer2.Enabled:=False), а при выходе опять включай (Timer2.Enabled:=True).
Ответить с цитированием