![]() |
form wirklich beenden? wie?
moinsen.
also ich bin eigendlich delphi-anfänger, also habt ein bisschen geduld mit mir.. *g* nun zu meiner frage.. ich versuche eine form zu erstellen, die nach einer zeit eine zweite form startet... das mache ich mit dem timer, was auch gut funktioniert... nun mein problem: die erste form, aus der die zweite aufgerufen wird soll automatisch beendet werden.. ich habe es schon mit form.hide; versucht, aber sobald dann die 2. form offen ist und die erste verseckt ist, ist die erste ja noch unsichtbar aktiv und sobald ich das programm beende muss ich es nochmal mit strg+alt+entf wirklich beenden, da ja die erste form noch läut.. nun meiner frage... wie bekomme ich das hin, dass sich beim starten der 2. form die 1. automatisch beendet?? mfg. deadline |
Hallo Deadline:
es gibt noch eine einfachere Möglichkeit wie diese: (aber die fällt mir gerade nicht ein *gg*) Also: du kannst einfach in dein 2. Formular beim Schließen Button (oder Timer ...) application.terminate; schreiben. Dann schließt er auch das erste Formular mit. Hoffe ich habe dir geholfen cu Trouble_Maker PS: Musst halt dann noch beim 2. Formular bei FormActivate "form1.visible := false;" reinschreiben |
hab nochn Tip für dich ...
damit du nicht aus versehen dein Formular mit dem Kreuz rechts oben schließt oder mit ALT+F4 und somit wieder mit STRG+ALT+ENF "arbeiten" musst... kannst du folgenden code einbauen
Code:
damit verhinderst du dass dein Programm mit den oben beschriebenen Möglichkeiten geschlossen wird. Also nur über dein Button mit "application terminate".
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin CanClose:=FALSE; end; cu Trouble_Maker |
Zitat:
hmm.. danke erstmal, das klingt ja alles schonmal ganz gut, nur irgendwie is des auch noch nit das gelbe vom ei.. gibs es denn keine möglichkeit, dass automatisch application.terminate ausgeführt wird, wenn man auf das schliessen-symbol klickt oder das programm mit alt+f4 beendet mfg. deadline |
Du kannst das Formular mit Form1.free ganz aus dem Speicher hauen, womit es auf jedem Fall geschlossen wird. Könnte aber Probleme geben wenn es das Mainform der Anwendung ist, musste testen. Willst du es später wieder nutzen mach dir einfach eine neue Instanz der Formularklasse.
|
Form1.Destroy :nerd:
|
Zitat:
ich werde es jetzt auch nochmal mit form1.free; versuchen... mal sehn.. mfg deadline [B]EDIT: das mit dem form1.free; geht auch nicht.... gibt es da denn keine möglichkeit?? |
hmm.. alles klar.. hab mich grad nochmal gründlich mit dem form1.free; befasst.. es geht nur das problem ist, dass es auch garnicht die form1 dann anzeigt, obwohl es ja eigendlich erst in form2 steht und nur dafür sorgen sollte dass die form1 total beendet wird, nachdem die form2 sich gestartet hat....
mfg deadline |
hmm machs doch mit variablen: mach erst ne public-variable CC:boolean, im form-show-event machste cc := false; und im closequery machste canclose := cc; dann musste halt nur bevor du dein form schliessen willst folgenden code benutzen:
Delphi-Quellcode:
form1.cc := true;
form1.close; |
Zitat:
hi wahrscheinlich hast du´s in das FormCreate von Form2 geschrieben! Dann ist das klar. Du musst das in onActivate reinschreiben, dass erst wenn das 2te Fenster geöffnet wird das erste geschlossen wird. cu Trouble_Maker |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:35 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-2025 by Thomas Breitkreuz