Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Showmodal - modalresult (https://www.delphipraxis.net/136977-showmodal-modalresult.html)

youuu 11. Jul 2009 16:09


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.

Bernhard Geyer 11. Jul 2009 16:16

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);

jaenicke 11. Jul 2009 16:20

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...

youuu 11. Jul 2009 16:22

Re: Showmodal - modelresult
 
Zitat:

Zitat von Bernhard Geyer
Erzeuge dein Login-Form im OnCreate des Hauptformulars.
Und bei fehlerhaften Login beende das Hauptformular mit PostMessage(self.Handle, WM_CLOSE, 0, 0);

Problem dabei ist das ich im Main Form etwas im OnShow Event habe und das Ereignis darf vor dem Login einfach nicht auftreten.

jaenicke 11. Jul 2009 16:28

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.

youuu 11. Jul 2009 16:34

Re: Showmodal - modelresult
 
Zitat:

Zitat von jaenicke
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.

Kannst du mir ein Beispiel geben, habe da mit noch gar keine Erfahrung.

jaenicke 11. Jul 2009 16:37

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;

youuu 11. Jul 2009 16:39

Re: Showmodal - modelresult
 
âh danke

jaenicke 11. Jul 2009 16:40

Re: Showmodal - modelresult
 
Ich habe gerade noch die Freigabe des Formularobjekts hinzugefügt, das hatte ich eben vergessen. ;-)

youuu 11. Jul 2009 17:10

Re: Showmodal - modelresult
 
Delphi-Quellcode:
  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;
Edit ok hab

Delphi-Quellcode:
FormLogin.Create(nil);
in
Delphi-Quellcode:
TFormLogin.Create(nil);
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.

Jedoch sollte das Ereignis FormShow des Hauptformulars noch warten bis der Login erfolgreich war.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:31 Uhr.
Seite 1 von 2  1 2      

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