Hallo,
in meinem mittlerweile recht großen Programm gibt es verschiedene Aktionen, die länger dauern. Um dem Benutzer nun zu signalisieren, dass das Programm etwas arbeitet und nicht rumhängt (
) habe ich ein Formular erstellt mit einer Progressbar, Maqueebar und einem Aktions-Label. Je nach Aktion wird die Marquee- oder Progressbar angezeigt.
Das Form wird dynamisch erstellt und freigegeben. Damit es sich aber neuzeichnet müsste ich es eigentlich in einem gesonderten Thread erstellen. Nun ist das aber wegen der Synchronisierung nicht so einfach. Wie muss ich die Sache angehen?
Kann ich in einem Thread das Formular erstellen lassen, wenn ich eine Methode synchronisiert aufrufe? Also, ist das der richtige Weg, damit das Formular "parallel" zu der Hintergrundaktion läuft?
Mein Code sieht - ohne Thread - bisher so aus (recht simpel)
Delphi-Quellcode:
var
...
frmWait: TfrmWarten;
begin
frmWait:=TfrmWarten.Create(nil);
try
frmWait.FormStyle:=fsStayOnTop;
frmWait.ShowMarqueeBar(True);
frmWait.Show;
frmWait.Repaint;
//Aktionen, die viel Zeit brauchen
...
...
...
finally
FreeAndNil(frmWait);
end;
end;
Danke im Voraus