Ich hab schon alles probiert, vor dem Timer, nach dem Timer. Ich hab auch schon statt dem Timer eine selbstgeschriebene Pause-Funktion verwendet, es ist immer das gleiche. Die Form wird erst nach dem vollständigen Ablauf der 5 Sekunden angezeigt.
Hier ist z.B. meine Pause-Funktion und die FormActivate:
Delphi-Quellcode:
function TForm.Pause(Zeit: LONGINT): BOOLEAN;
var StartZeit: LONGINT;
begin
// Zeit = Anzahl Millisekunden Pause
Abgebrochen := FALSE;
Startzeit := GetTickCount;
repeat
Application.ProcessMessages;
IF Abgebrochen THEN Zeit := 0;
until (GetTickCount - Startzeit > Zeit) or (Zeit = 0);
Result := NOT Abgebrochen;
end;
procedure TForm.FormActivate(Sender: TObject);
begin
// ... Initialisierung verschiedener Parameter
// ...
if Pause(5000) then // Machweiter;
ShowMessage('OK');
end;
Das "OK" kommt erst nach dem Ablauf der 5 Sekunden und danach wird erst die Form gezeichnet.
So------- der Fehler ist jetzt behoben. War meine Schuld. Hatte bei der Form borderstyle auf bsDialog eingestellt und das geht das nicht.
mfg
Herbert