Einzelnen Beitrag anzeigen

Perlsau
(Gast)

n/a Beiträge
 
#20

AW: Für CopyRect passendes Ereignis?

  Alt 25. Jan 2016, 19:00
Oben hatte SirRufo doch einen Hinweis auf OnIdle geliefert:

Die VCL-Form ist gesichert komplett gezeichnet beim ersten Application.OnIdle Event nach dem Form.OnShow Event.

Ist dieser Hinweis denn nicht brauchbar? Könnte man denn nicht einfach in der OnIdle-Ereignisbehandlung eine globale Boolean-Variable, die als Schalter fungiert, abfragen, so daß die Anweisungen nur dieses eine Mal ausgeführt werden? Z.B. so:
Delphi-Quellcode:
...
  private
    Var
      FirstIdlePassed : Boolean;
  public
    procedure MyOnIdleHandler(Sender: TObject; var Done: Boolean);
  end;

procedure TForm1.MyOnIdleHandler(Sender: TObject; var Done: Boolean);
begin
  Done := False;
  If FirstIdlePassed Then Exit;

  FirstIdlePassed := True;
  ShowMessage('Das erste OnIdle-Event!');
  ...
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FirstIdlePassed := False;
  Application.OnIdle := MyOnIdleHandler;
end;
Nachtrag:
Ob das dann auch in Lazarus funktioniert, muß man gegebenenfalls ausprobieren ... Ach ja, bei Lazarus muß man das @ davor setzen:
Application.OnIdle := @MyOnIdleHandler;

Geändert von Perlsau (26. Jan 2016 um 06:36 Uhr) Grund: Nachtrag
  Mit Zitat antworten Zitat