![]() |
Showmodal - modalresult
Hi,
ich möchte gern ein Login realisieren, wie mach ich das am besten? Ich hatte gedacht es am besten so zurealisieren: Login Form anzeigen --> eingabe ok --> login Form schließen --> Main Form öffnen. Wenn ich dies aber so realisier, wird unten in der Taskleiste mein Programm nicht mehr angezeigt, da das Login Fenster als Hauptanwendungs-Fenster deklariert ist und mit Hide verschwindet. Wie kann ich dies besser per Showmodal realisieren? Häng grad fest. |
Re: Showmodal - modelresult
Erzeuge dein Login-Form im OnCreate des Hauptformulars.
Und bei fehlerhaften Login beende das Hauptformular mit PostMessage(self.Handle, WM_CLOSE, 0, 0); |
Re: Showmodal - modelresult
Man kann das Loginformular auch einfach im Projektquelltext erzeugen. Dann spart man sich die Verrenkung mit der Message und auch gleich das Erzeugen des Hauptfensters, wenn der Login nicht erfolgreich war.
Man darf das Loginfenster nur nicht mit Application.CreateForm erzeugen, sondern muss ganz normal den Konstruktor benutzen, dann geht das... |
Re: Showmodal - modelresult
Zitat:
|
Re: Showmodal - modelresult
OnCreate wird vor OnShow ausgelöst. Das heißt du könntest an der Stelle auch einfach ein Flag setzen, ob das ausgeführt werden soll.
Aber das ist wie gesagt alles gar nicht notwendig, erzeuge das Hauptformular einfach gar nicht erst, wenn der Login nicht erfolgreich war. |
Re: Showmodal - modelresult
Zitat:
|
Re: Showmodal - modelresult
Naja, wie ich geschrieben habe...
Delphi-Quellcode:
Application.Initialize;
frmLogin := TfrmLogin.Create(nil); try if (frmLogin.ShowModal <> mrOk) or (frmLogin.UserName <> 'Test') then Exit; finally frmLogin.Free; end; Application.CreateForm(TfrmMain, frmMain); Application.Run; |
Re: Showmodal - modelresult
âh danke
|
Re: Showmodal - modelresult
Ich habe gerade noch die Freigabe des Formularobjekts hinzugefügt, das hatte ich eben vergessen. ;-)
|
Re: Showmodal - modelresult
Delphi-Quellcode:
Edit ok hab
Application.Initialize;
FormLogin := Application.Initialize; FormLogin := FormLogin.Create(nil); try if Login_exist then Exit; finally FormLogin.Free; end; Application.CreateForm(TFormMain, FormMain); Application.CreateForm(TFormKunden, FormKunden); Application.CreateForm(TFormPosition, FormPosition); Application.Run;
Delphi-Quellcode:
in
FormLogin.Create(nil);
Delphi-Quellcode:
geändert dummer Fehler meinerseits, allerdings wenn ich nun starte, wird trotzdem wieder FormMain.Show gestartet und ich krieg logischerweise eine Fehlermeldung, da meine Objekte alle noch af nil stehen.
TFormLogin.Create(nil);
Jedoch sollte das Ereignis FormShow des Hauptformulars noch warten bis der Login erfolgreich war. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:50 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