Как выполнить какой-то процесс тогда, когда пользователь не работает с моим приложением?

Материал из DRKB

Как выполнить какой-то процесс тогда, когда пользователь не работает с моим приложением?[править | править код]

Создайте процедуру, которая будет вызываться при событии Application.OnIdle.

Объявим процедуру:

{ Private declarations }
procedure IdleEventHandler(Sender: TObject; var Done: Boolean);

// В разделе implementation опишем процедуру:

procedure TForm1.IdleEventHandler(Sender: TObject; var Done: Boolean);
begin
  { Do a small bit of work here }    
  Done := false;
end;


В методе Form'ы OnCreate укажем что наша процедура вызывается на событии Application.OnIdle:

  Application.OnIdle := IdleEventHandler;

Событие OnIdle возникает один раз - когда приложение переходит в режим "безделья" (idle).

Если в обработчике переменной Done присвоить False событие будет вызываться вновь и вновь, до тех пор пока приложение "бездельничает" и переменной Done не присвоено значение True.


Author: p0s0l
Source: http://www.vlata.com/delphi/
ID: 00410
ID: 04571