Программы   Загрузка Партнерство   О компании Контакты  
 
                    
  Карта Сайта   
   

Для чего нужен ProcessMessages

Автор: Alexander Vozny


Многие начинающие программисты не знают о методе Application.ProcessMessages() и сталкиваются с проблемами, которых не могут объяснить. Например хотим написать что-то на форме и через 5 секунд стереть.

Нужно сделать так:


procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption:='Started';
  Application.ProcessMessages();
  sleep(1000);
  Label1.Caption:='Finished';
end;

Попробуйте убрать Application.ProcessMessages() и 'Started' вы никогда не увидите, это связано с тем, что Windows ждет пока накопятся задачи в очереди а не выполняет их сразу, Application.ProcessMessages() заставляет выполнить все задачи которые накопились в данный момент. Подробнее читайте в Help.

Это также можно применить в таком примере:


procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  for i:=1 to 100000 do
    Application.ProcessMessages();
end;

если не будет ProcessMessages() то пока крутится цикл мы не сможем сдвинуть или свернуть форму.

           


Защитные покрытия - настольное покрытие. . Кухни tomassi. Мебель Tomassi. . Центры Йоги Москвы: йога индивидуальные занятия. Одежда для йоги. . модели оценок обыкновенных акций .


Программы  |  Загрузка  |  Партнерство  |  О компании  |  Контакты

Copyright © LSD Software 2006 - 2011