Цитата:
Сообщение от 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).