Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: VCL: Wann ist ein Formular fertig gerendert?

  Alt 28. Okt 2015, 12:39
Auf jedes Formular jetzt noch einen Timer zu packen, Events verdrahten und alles ist leider zu viel Aufwand. Bislang bin ich bei jedem Formular im OnActivate nur hingegangen und habe sage nur noch macheScreenshot('Abb. 35') . Und die 10ms sind im Endeffekt dann auch nur geraten.
Und wenn du es einfach im übergeordneten Formular machst?
Deine ganzen Formulare hast du ja sicherlich nicht von TForm abgeleitet sondern von TGünnisUrsprungAllerDingeForm, oder?

Dann könntest du ganz bequem das machen:

Delphi-Quellcode:
procedure TGünnisUrsprungAllerDingeForm.OnTimer(Sender: TObject);
begin
  if Sender is TTimer then
  begin
    TTimer(Sender).Enabled := False;
    ShowMessage('Mache Screenshot!');
// Sender.Free; <- einkommentieren, wenn Owner vom Timer nil anstatt Self ist!
  end;
end;

procedure TGünnisUrsprungAllerDingeForm.FormActivate(Sender: TObject);
var
  LTimer: TTimer;
begin
  LTimer := TTimer.Create(Self);
  LTimer.OnTimer := OnTimer;
  LTimer.Interval := 2000;
  LTimer.Enabled := True;
end;
Oder alternativ das was Lemmy schrieb.
  Mit Zitat antworten Zitat