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 Form geschlossen - Programm beendet? (https://www.delphipraxis.net/115037-form-geschlossen-programm-beendet.html)

romber 4. Jun 2008 21:09


Form geschlossen - Programm beendet?
 
Mein Programm startet ohne Formular, erstellt ein TrayIcon, ein PopupMenu dafür und ein Thread. Alles funktioniert pefekt. Die ganze Code befindet sich in der Project-Datei. Irgendwann erstelle ich eine Form und zeige diese, und sobald die Form geschlossen wird, beendet sich das ganze Programm.

Wie kann ich verhindern, dass beim schließen der Form die ganze Anwendung terminiert wird?

Die Muhkuh 4. Jun 2008 21:13

Re: Form geschlossen - Programm beendet?
 
Das Problem ist, dass die Form als MainForm erkannt wird und deswegen die Anwendung geschlossen wird.

Wie erzeugst Du die Form?

Dunkel 4. Jun 2008 21:16

Re: Form geschlossen - Programm beendet?
 
Oder, wie schliesst Du die Form?

Versuch es mal mit TForm.Hide statt TForm.Close.

romber 5. Jun 2008 08:51

Re: Form geschlossen - Programm beendet?
 
Ich prüfe zuerst, ob die Form bereits existiert und wenn nicht, erstelle diese.

Delphi-Quellcode:
if not Assigned(frmProperties) then
Application.CreateForm(TfrmProperties, frmProperties);
Ich habe versucht, die Form mit

Delphi-Quellcode:
frmProperties := TfrmProperties.Create(nil);
die Form zu erzeugen. Das klappt und das ganze Programm wird sogar nicht beendet, wenn die Form geschlossen wird. Die Eigenschaft FormStyle := fsStayOnTop wird aber nicht übernommen.

Wie mache ich das richtig, damit die Anwendung nicht beendet wird?

RavenIV 5. Jun 2008 12:51

Re: Form geschlossen - Programm beendet?
 
Zitat:

Zitat von romber
Wie mache ich das richtig, damit die Anwendung nicht beendet wird?

Du hast doch schon einen Tip bekommen.
Versuch das mal so:
Zitat:

Zitat von Dunkel
Oder, wie schliesst Du die Form?

Versuch es mal mit TForm.Hide statt TForm.Close.


sirius 5. Jun 2008 13:26

Re: Form geschlossen - Programm beendet?
 
Nicht Application.createform verwenden sondern x:=TForm.create;
Ach hast du ja schon probiert.
Wieso wird dann stayonTop nicht verwendet? Da stimmt etwas nicht.

romber 5. Jun 2008 18:47

Re: Form geschlossen - Programm beendet?
 
Versuch das mal so:
Zitat:

Zitat von Dunkel
Versuch es mal mit TForm.Hide statt TForm.Close.

Bringt nichts. Das Programm wird trotzdem beendet.

Zitat:

Zitat von sirius
Wieso wird dann StayOnTop nicht verwendet? Da stimmt etwas nicht.

Wenn das Formular ordentlich mit

Delphi-Quellcode:
Application.CreateForm(TForm1, Form1);
erstellt wird, funktioniert alles perfekt, bis auf fsStayOnTop. Das Problem ist, dass beim Schließen der Form das ganze Programm beendet wird. Wird das Formular mit

Delphi-Quellcode:
Form1 := TForm1.Create
erstellt, funktioniert alles so wie ich möchte, bis auf fsStayOnTop.

Weiss jemand, wo das Problem liegt? Welche Varianten gibt es noch?

rollstuhlfahrer 5. Jun 2008 18:56

Re: Form geschlossen - Programm beendet?
 
Zitat:

Zitat von romber
Welche Varianten gibt es noch?

Du kannst den Taskbar-Eintrag verschwinden lassen und das Form in den TNA minimieren, da du ja schon ein Tray-Icon hast.

Bernhard

romber 5. Jun 2008 19:03

Re: Form geschlossen - Programm beendet?
 
Zitat:

Zitat von rollstuhlfahrer
Du kannst den Taskbar-Eintrag verschwinden lassen und das Form in den TNA minimieren, da du ja schon ein Tray-Icon hast.

Und was bringt mir das?

rollstuhlfahrer 5. Jun 2008 19:05

Re: Form geschlossen - Programm beendet?
 
Form ist weg und das Programm läuft weiter. Genau das willst du doch, oder verstehe ich dich falsch??

Bernhard


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

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