Ich würde das so machen:
1. In TForm1 eine Variable "FirstActivation" anlegen
2. Im OnCreate() diese auf true setzen
3. Im OnActivate() dann:
Code:
if FirstActivation then begin
FirstActivation := false;
(lange dauernde Aktionen mit Fortschrittsbalken);
PostMessage(Self.Handle, WM_CLOSE, 0, 0);
end
Wenn Dir OnActivate zu "früh" ist, nimm halt OnResize. Ich habe allerdings noch kein Formular gehabt, das im OnActivate noch nicht fertig gezeichnet gewesen wäre (und ich habe hier Forms mit dutzenden von Controls).