...Aktionen ausführen, wenn das Programm Idle ist?
Autor: Andreas Rumsch
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    procedure MyIdleHandler(Sender: TObject; var done: Boolean);
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.MyIdleHandler(Sender: TObject; var done: Boolean);
begin
  // do something here
  // hier irgendwas tun
  Self.Left  := Random(Screen.Width - Self.Width);
  Self.Top   := Random(Screen.Height - Self.Height);
  Edit1.Text := TimeToStr(now);
end;
procedure TForm1.Button1Click(Sender: TObject);
var 
  dt, dtn: TDateTime;
begin
  // simulate heavy calculatin with this button
  // umfangreiche Berechnungen simulieren
  dt := Now;
  repeat
    dtn := Now;
  until dtn > (dt + 10 / 3600 / 24);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  // assign the Handler to OnIdle of the Application
  // den Handler dem OnIdle von Application zuweisen
  Application.OnIdle := MyIdleHandler;
end;
end.
printed from
  www.swissdelphicenter.ch
  developers knowledge base