![]() |
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 |
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:
Grüße vom marabu
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. |
Re: Dialog ausblenden
Zitat:
gruß chris |
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: |
Re: Dialog ausblenden
mrOK da dast er undefinierter bezeichner...
und naja das password dings hab ich weggelassen :) |
Re: Dialog ausblenden
Kannst auch folgendes machen:
Erstelle dein Hauptformular und ein untergeordnetes LoginFormular oder LoginDialog. Diesen Code hinzufügen
Delphi-Quellcode:
und fertig.
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; Das LoginDialog lässt sich auch in anderen Anwendungen verwenden. |
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 |
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 |
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 |
Re: Dialog ausblenden
Trag einfach ins OnClick des Speedbuttons die Zeile
Delphi-Quellcode:
ein.
ModalResult := mrOK;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 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