Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Bei Beenden des Programmes neue Form erzeugen (https://www.delphipraxis.net/124309-bei-beenden-des-programmes-neue-form-erzeugen.html)

Cyberbob 18. Nov 2008 14:34


Bei Beenden des Programmes neue Form erzeugen
 
Hallo allerseits,

ich habe ein Problem mit meinem Programm. Beim Beenden des selbigen soll eine neue Form erzeugt werden. Damit soll angezeigt werden, wie weit ein Speichervorgang fortgeschritten ist. Nur wird die Form nur für den Bruchteil einer Sekunde angezeigt und zeigt mir gar keinen Speicherfortschritt an.
Die neue Form wird im Destroy-Abschnitt einer anderen Form erzeugt.
Wie kann ich das am besten lösen?

Gruß,
Chris

Bernhard Geyer 18. Nov 2008 14:38

Re: Bei Beenden des Programmes neue Form erzeugen
 
Ich würde das im OnClose/OnCloseQuery des Hauptformulares anzeigen lassen.

HenKst 18. Nov 2008 14:39

Re: Bei Beenden des Programmes neue Form erzeugen
 
Ich denke mit ShowModal wär dir gut gedient.

Wenn du im destroy ein Form erzeugst, aber das destroy nicht anhällst ist das Form danach ja trotzdem weg :)

Mit ShowModal wird das übergeordnete program angehalten und du kannst in Ruhe deine Speicheranzeige abarbeiten.
Wenn die fertig ist setzt du das modalresult entsprechend und das Program wird beendet.

GreeZ HenKst

Luckie 18. Nov 2008 14:39

Re: Bei Beenden des Programmes neue Form erzeugen
 
also entweder beendest du deine Anwendung und Ende oder du öffnest ein anderes Fenster. Eins von beiden geht nur. Was dich allerdings nicht daran hindert erst ein neues fenster anzuzeigen und wenn das geschlossen wurde deine Anwendung zu beenden.

Cyberbob 18. Nov 2008 15:05

Re: Bei Beenden des Programmes neue Form erzeugen
 
Die neue Form lass ich mir per ShowModal anzeigen und am Ende des OnDestroy wird sie auch wieder freigegeben. das Speichern der Daten mache ich in einer schleife in der ich die Progressbar um einz hochzähle und dann ein Application.Processmessages aufrufe.
Ich glaube, ich versuche das mit mit Onclose des Hauptformulars

Sir Rufo 18. Nov 2008 15:40

Re: Bei Beenden des Programmes neue Form erzeugen
 
öh, ich würe die Form von der Speicherroutine selber aus auf- und zumachen lassen
Delphi-Quellcode:
procedure SpeicherMalWasAb;
var
  SpeicherAnzeigeForm : TSpeicherAnzeigeForm;
begin
  SpeicherAnzeigeForm := TSpeicherAnzeigeForm.Create( nil ); // <--- Kein Parent oder was auch immer angeben!!!!
  try
    SpeicherAnzeigeForm.Show;
    // Ab hier wird wild drauf los gespeichert
   
    [... SpeicherCode ...]

    // Fertig mit Speichern
    SpeicherAnzeigeForm.Close;
  finally
    SpeicherAnzeigeForm.Free;
  end;
end;
Dann brauche ich auch nur, wann auch immer das Speichern aufrufen und die Form wird angezeigt und wieder entfernt.

cu

Oliver

Cyberbob 18. Nov 2008 15:50

Re: Bei Beenden des Programmes neue Form erzeugen
 
So hab ichs. Allerdings mit dem Parent Application, hat das was zu bedeuten?

Sir Rufo 18. Nov 2008 16:49

Re: Bei Beenden des Programmes neue Form erzeugen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von Cyberbob
So hab ichs. Allerdings mit dem Parent Application, hat das was zu bedeuten?

Wenn du es genau so machst wie in meinem Beispiel dann tut das auch (just tested)

cu

Oliver


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz