Многие начинающие программисты не знают о методе Application.ProcessMessages() и сталкиваются с проблемами, которых не могут объяснить. Например хотим написать что-то на форме и через 5 секунд стереть.
Нужно сделать так:
procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption:='Started'; Application.ProcessMessages(); sleep(1000); Label1.Caption:='Finished'; end; |
Это также можно применить в таком примере:
procedure TForm1.Button1Click(Sender: TObject); var i: integer; begin for i:=1 to 100000 do Application.ProcessMessages(); end; |
если не будет ProcessMessages() то пока крутится цикл мы не сможем сдвинуть или свернуть форму.
Прислал Alexander Vozny. [000485]