Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dialog ausblenden (https://www.delphipraxis.net/61127-dialog-ausblenden.html)

Pump3r 17. Jan 2006 13:30


Dialog ausblenden
 
Hi,
ich hab eine anwendung und zusätzlich hat diese ein formular.
Die andwendung ist ein loginfenster. nach dem login soll sich das formular öffnen.
das mach ich mich showmodal.. das geht auch. aber wie kann ich jetzt den logindialog schließen und das formular trotzdem geöffnet lassen, oder den logindialognicht sichtbar machen?

Gruß Chris

marabu 17. Jan 2006 14:46

Re: Dialog ausblenden
 
Hallo Chris,

nicht der Login-Dialog sollte deine MainForm sein, sondern die andere Form. Entferne dazu den Login-Dialog aus der Liste der automatisch erzeugten Forms und ändere deinen Projektquelltext etwas ab:

Delphi-Quellcode:
begin
  with TLoginDialog.Create(nil) do
  begin
    if (ShowModal <> mrOK) or (Password.Text <> 'marabu')
      then Halt
      else Free;
  end;

  Application.Initialize;
  Application.CreateForm(TMainForm, MainForm);
  Application.Run;
end.
Grüße vom marabu

Pump3r 17. Jan 2006 14:55

Re: Dialog ausblenden
 
Zitat:

Zitat von marabu
Delphi-Quellcode:
if (ShowModal <> mrOK) or (Password.Text <> 'marabu')

kannst du mir die zeile noch etwas genauer erklären bitte :)


gruß chris

Kinimod8 17. Jan 2006 15:27

Re: Dialog ausblenden
 
Die Procedure "ShowModal" gibt beim Schließen das ModalResult zurück. Wenn du z.B. einen OK- und einen Abbrechen-Button hast, setzt du das ModalResult des OKs auf mrOK und bei Abbrechen mrAbort. Das Formular schließt sich dann automatisch.

Und "Passwort" ist wohl einfach ein Edit-Feld, dessen Text du abfragst :wink:

Pump3r 17. Jan 2006 15:33

Re: Dialog ausblenden
 
mrOK da dast er undefinierter bezeichner...

und naja das password dings hab ich weggelassen :)

Cicaro 17. Jan 2006 16:14

Re: Dialog ausblenden
 
Kannst auch folgendes machen:
Erstelle dein Hauptformular und ein untergeordnetes LoginFormular oder LoginDialog.
Diesen Code hinzufügen

Delphi-Quellcode:
type
  TLoginDialog = class(TForm)
    ...  
  public
    Kennung,Passwort:String;
    function Execute:Boolean;
  end;

var
  MyLoginDialog:TLoginDialog;

function TLoginDialog.Execute:Boolean;
begin
  ShowModal;
  Result:=(Kennung = "Cicaro") and (Passwort = "HättetIhrWohlGern");
end;

// Unit-Wechsel

procedure TForm1.FormShow(Sender:TObject);
begin
  if not MyLoginDialog.Execute then Application.Terminate();
  ...
end;
und fertig.
Das LoginDialog lässt sich auch in anderen Anwendungen verwenden.

Pump3r 17. Jan 2006 16:19

Re: Dialog ausblenden
 
danke.


if (ShowModal <> mrOK) then ....
hier sagt er mir das mrOK ein undefinierter bezeichner ist.
wo bitte soll ich den definieren?
ich benutze einen speed button. also habe ich modalresult := mrOK; gesetz.
aber geht net.


warum? :)

Gruß Chris

marabu 17. Jan 2006 16:27

Re: Dialog ausblenden
 
Chris, in meinem Code-Beispiel habe ich den Password-Dialog aus der D7 Dialog-Galerie verwendet.
Du findest ihn im Menü unter Neu | Weitere | Dialoge.
Die ModalResult-Konstanten sind in der Unit Controls deklariert - einfach über USES einbinden.

marabu

Pump3r 18. Jan 2006 08:41

Re: Dialog ausblenden
 
ok danke :)
das hab ich jetzt sweit verstanden, nur ich benutze eben einen speedbutton und ich finde die modalresult option im objektinspektor nicht.
wie soll ich das dann machen?

gruß pump3r

tigerman33 18. Jan 2006 08:53

Re: Dialog ausblenden
 
Trag einfach ins OnClick des Speedbuttons die Zeile
Delphi-Quellcode:
  ModalResult := mrOK;
ein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 Uhr.
Seite 1 von 2  1 2      

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