Einzelnen Beitrag anzeigen

Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

"Bitte warten"-Formular korrekt anzeigen

  Alt 24. Aug 2010, 16:07
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
  Mit Zitat antworten Zitat