Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

AW: "Bitte warten"-Formular korrekt anzeigen

  Alt 24. Aug 2010, 19:15
Mach's doch so:
Delphi-Quellcode:
var
  ...
  frmWait: TfrmWarten;
begin
  frmWait:=TfrmWarten.Create(nil);
  try
    //frmWait.FormStyle:=fsStayOnTop; // lieber nicht-das ist zu "agressiv" für den Benutzer
    frmWait.ShowMarqueeBar(True);
    frmWait.Show;
    //Aktionen, die viel Zeit brauchen
    frmWait.AddMessage('Datenbank wird überprüft...');
    ... // arbeiten
    frmWait.AddMessage('Index neu anlegen...');
    ...
    frmWait.AddMessage('Fertig');
    frmWait.Finish;
  finally
    frmWait.Free;
  end;
end;
Die Methode AddMessage() ruft intern immer auch noch BringToFront auf, damit das "Warten"-Formular nicht permanent hinter dem Hautpformular verschwindet.

Die Methode Finish sieht so aus:
Delphi-Quellcode:
procedure TfrmWarten.Finish;
begin
   PlaySound('RingIn', 0, SND_ALIAS);
   Cursor := crDefault;
   Hide;
   BtnClose.Visible := True; // Schliesen-Button einblenden
   ShowModal;
end;
Somit muss der Benutzer das Fenster zum Schluss schliesen.
Grund: er soll die Gelegenheit haben die Meldungen zu lesen.
Andreas
  Mit Zitat antworten Zitat