Mal so ein kleiner Minimalcode:
Delphi-Quellcode:
var
LForm : TForm;
LThread : TThread;
begin
LForm := TSplashScreen.Create( nil );
try
LThread := TStartupThread.Create( LForm );
try
LForm.ShowModel;
LThread.WaitFor;
finally
LThread.Free;
end;
finally
LForm.Free;
end;
end;
TStartupThread
muss lediglich am Ende eine Nachricht an die Form schicken, damit die geschlossen wird.
Alles weitere (Progress, Infos, ...) ist Zuckerguss und funktioniert auf die gleiche/ähnliche Art.
Das Erzeugen von
VCL-Gedöns ausserhalb des MainThread-Context sollte man aber bleiben lassen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)