Hab jetzt noch nicht genau den Aufbau deiner Idee geblickt, aber ich häng dir mal eine kleine Demo an.
Ausschnitt:
Delphi-Quellcode:
procedure TfrmMain.Button1Click(Sender: TObject);
var
frmWait: TfrmWait;
begin
// Wartefenster erstellen
frmWait := TfrmWait.Create(nil);
// Thread starten
TWorkerThread.Create(frmWait).OnTerminate := OnWorkerThreadTerminate;
// Wartefenster anzeigen
frmWait.ShowModal;
end;
Und im Thread, der die Aufgaben erledigt, dann so:
Delphi-Quellcode:
procedure TWorkerThread.Execute;
begin
// setzt mit Synchronize das Label im Wartefenster
SetAction('Wichtige Berechnung');
Sleep(2000);
end;
Sobald der Thread terminiert, wird das Wartefenster geschlossen.
Ich hoffe mal, das ist in etwa das, was du brauchst.