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 Mehrere Forms (Öffnen und Schließen) (https://www.delphipraxis.net/28035-mehrere-forms-oeffnen-und-schliessen.html)

Whistler 18. Aug 2004 23:19


Mehrere Forms (Öffnen und Schließen)
 
Guten Morgen,

folgendes Problem:
Form1, genannt "Main", öffnet via Button Form2, genannt "Ueber". Im Code sieht das so aus:
Delphi-Quellcode:
procedure TMain.btHilfeClick(Sender: TObject);
begin
Ueber1 := TUeber.Create (Main);
ueber1.showmodal;
end;
Ich habe also die Variable "Ueber1" erstellt. In diese erstelle ich das Formular "Ueber", welches selbstverständlich unter "uses" bei Form "Main" eingetragen ist.
Wenn der User also auf den Buttun "btHilfe" klickt, soll sich das besagt Form "Ueber" öffnen und das Hauptprogramm ("Main") in der Zeit nicht anwählbar sein. Dies realisiere ich via "ShowModal".

Auf dem Formular "Ueber" ist ein Button "btClose" der bei Klick "Ueber.Close" ausführt. Wenn er das macht, crashed das Programm :)
Daher führe ich "Main.Ueber1.Close;" aus - habe allerdings auch "Main.Ueber1.Destroy" bzw. ".free" probiert. Das Formular "Ueber" schließt sich zwar, aber das Hauptformular wird nicht wieder aktiv - was es aber werden soll.

Hoffe das Problem wurde verstanden und jemand weiß Rat.

P.s.:
Wenn jmd. ein paar gute Tutorials zu "Delphi & mehrere Forms" kennt, wäre ich ihm dankbar!

NicoDE 18. Aug 2004 23:23

Re: Mehrere Forms (Öffnen und Schließen)
 
ModalResult dürfte Dein Problem lösen.

SirThornberry 18. Aug 2004 23:24

Re: Mehrere Forms (Öffnen und Schließen)
 
du musst das form "ueber" mit
Delphi-Quellcode:
modalresult := mrOK; ///oder irgend ein anderer Rückgabewert
schließen

Whistler 20. Aug 2004 02:21

Re: Mehrere Forms (Öffnen und Schließen)
 
Leider nein.
"modalresult := mrOK" ignoriert er. In einer "if-Abfrage" prüfe ich eine Progressbar. Wenn hier die Position 100 erreicht ist, soll sich das Fenster schließen. Die Abfrage selbst funktioniert, dies habe ich Mittels "ShowMessage" getestet. Jedoch bei "Close;" bzw. "Ueber.Close;" kommt es zu einer Exception und "modalresult := mrOK" bzw. "modalresult := 1" ignoriert er.

Nachtrag:
Ich führe alles bei "OnCreate" aus. Dies scheint nicht zu gehen. Jmd. eine Idee wo ich es statt dessen ausführen kann (Fenst soll eigentlich nur angezeigt werden und autom. abgearbeitet werden und sich beenden - Timer?)?

Leuselator 20. Aug 2004 02:36

Re: Mehrere Forms (Öffnen und Schließen)
 
schau mal dort - der von mir vorgeschlagene Weg sollte auch für Dein Problem passen...
Gruß

Whistler 20. Aug 2004 02:43

Re: Mehrere Forms (Öffnen und Schließen)
 
Guten Morgen Leuselator,

interessant Idee. Werde ich mir heute Mittag mal genauer anschauen.
Aktuell lasse ich in Form2.Create einfach den Timer aktivieren und führe das Close dann dort aus - was funktioniert.

Leuselator 20. Aug 2004 02:52

Re: Mehrere Forms (Öffnen und Schließen)
 
Timer sind immer Mist für soetwas - geht zwar, ist aber nicht sauber.
Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 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