![]() |
Buttonabhängiges Schließen des Programms
Hi DPler,
ich habe mich jetzt schon zum zweiten Mal gefragt, wie man das schließen einer Anwendung abhängig davon machen kann, welcher Button gedrückt wird. Konkret geht es darum, dass ich gerade ein Chat schreibe. Nun wollte ich am Anfang ein Anmeldefenster einfügen. Wenn man das Programm startet, dann sieht man im Hintergrund das eigentliche Chatfenster (ist nicht enabled). Davor ist eine kleiner Fenster zu sehen, in welchem man Benutzername und Passwort eingibt, dann auf Anmelden klickt. Beim Klick auf den Button Anmelden soll nur dieses Fenster geschlossen werden. Wenn man aber auf das rote Kreuz oben in der Ecke des Fenster klickt, soll das Programm beendet werden. Hoffe ihr könnt nachvollziehen, wo mein Problem liegt. Ich habe mir auch schonmal OnCloseQuery angeschaut, aber das passt auch nicht auf mein Problem. Denn das Anmeldefenster soll ja in jedem Fall geschlossen werden, nur die Behandlung des Hauptfensters soll ja abhängig von dem gedrückten Button sein. LG, hans ditter |
AW: Buttonabhängiges Schließen des Programms
Guck dir mal TForm.ShowModal und TForm.ModalResult an, bzw. auch TButton.ModalResult. (Tipp: Schließen über das rote X dürfte "mrNone" liefern.)
|
AW: Buttonabhängiges Schließen des Programms
Hey, danke für die Antwort. Werds mir morgen mal anschauen... bin jetzt echt müde... :|:vernupft::corky::drunken: :pale: :freak:
(Ok, ich geb zu, hab's grad ein biiischen übertrieben mit den Smileys.... :D und schon wieder einer, ein Teufelkreis ... :lol: :firejump:) |
AW: Buttonabhängiges Schließen des Programms
Zitat:
Siehe Quelltext für Anwendung:
Delphi-Quellcode:
So wird erst dein Chatfenster erstellt, wenn dein Login ein mrOk liefert, falls es das nicht tut und wird beendet, schließt sich die komplette Anwendung.
begin
Application.Initialize; Application.MainFormOnTaskBar:= true; frm_Login:= Tfrm_Login.Create(nil); try if frm_Login.ShowModal = mrOk then Application.CreateForm(Tfrm_Start, frm_Start); finally frm_Login.Free; end; Application.Run; end. |
AW: Buttonabhängiges Schließen des Programms
hm, werds gleich nochmal googlen, aber könntest du an meinem Quelltext nochmal die Änderungen, die ich vornehmen muss mit Kommentaren posten?
Hier mein Quelltext:
Delphi-Quellcode:
program Client;
uses Forms, Unit1 in 'Unit1.pas' {Form4}, Unit2 in 'Unit2.pas' {Form2}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.Run; end. |
AW: Buttonabhängiges Schließen des Programms
Welches ist denn das LoginForm?
|
AW: Buttonabhängiges Schließen des Programms
Form1 --> Hauptform
Form2 --> Loginform Beide Forms werden (eigentlich) bei Programmstart erstellt. Ich hatte mir zu Hause auch Gedanken gemacht. Das ist rausgekommen:
Delphi-Quellcode:
Der restliche Quelltext funzt auch nicht. Da wird das Loginfenster halbwegs erzeugt, dann kommt aber eine Fehlermeldung, dass aus einem sichtbaren Fenster kein modales gemacht werden kann.
program Client;
uses Forms, Unit1 in 'Unit1.pas' {Form4}, Unit2 in 'Unit2.pas' {Form2}; {$R *.res} begin Application.Initialize; //Application.MainFormOnTaskBar:=True; --> failure: Application kennt diesen Bezeichner nicht Form2:=TForm2.Create(nil); try if Form2.ShowModal = mrOk then Application.CreateForm(TForm1,Form1); finally Form1.Free; end; Application.Run; end. |
AW: Buttonabhängiges Schließen des Programms
Ungetestet:
Delphi-Quellcode:
program Client;
uses Forms, Unit1 in 'Unit1.pas' {Form4}, Unit2 in 'Unit2.pas' {Form2}; {$R *.res} begin Application.Initialize; Form2:=TForm2.Create(nil); try Form2.Visible := false; if Form2.ShowModal = mrOk then Application.CreateForm(TForm1,Form1); finally Form2.Free; //Form2, nicht Form1 end; Application.Run; end. |
AW: Buttonabhängiges Schließen des Programms
tja, das funktioniert schonmal fast super.
Ich hatte versehentlich eingegeben
Delphi-Quellcode:
... und was soll ich sagen, dass funktioniert. Wenn ich da angebe
if Form2.ShowModal <> 0 then
Delphi-Quellcode:
erzählt er mir, dass 'mrOk' ein 'undefinierter Bezeichner' ist.
if Form2.ShowModal = mrOk then
Und dann hab ich noch eine Verständnisfrage. Du erzeugst Form2. Machst es dann aber unsichtbar, man kann es aber trotzdem sehen? Ist mir im Moment noch ein Rätsel... :glaskugel: |
AW: Buttonabhängiges Schließen des Programms
Ein kurzer Blick in die Referenz:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 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