![]() |
Datenbank: keydb • Zugriff über: delphi
Login auf form2
Hallo ich habe ein kleines problem welches sich in form eines logins darstellt....
ich versuche einen login auf ein programm zu setzten quasi der standart mit : - Login Name - Passwort - Button OK - Button Abbrechen Jeodch steht zu zeit nur eine Tabelle in der datenbank welche die felder loginname und passowrt enthält Ich weiss leider nicht wie ich es in delphi als code schreiben soll das er es tut! Es soll erst die Form2 auf der sich der login befindet geöffnet werden und anschließend bei erfolgreichem login dann Form1. Ich danke euch schonmal im vorraus ;) |
Re: Login auf form2
Hallo,
1. Nenne Form2 um ... ;) 2. packe den Aufruf des Form2 in die dpr vor dem Application.ExecuteForm (Form1). Heiko |
Re: Login auf form2
Also das Umbenennen ist nicht zwingend notwendig.
ich selbst löse solche Anmeldefenster (oder auch Splash-Fenster), indem ich sie in der FormShow-Routine des Hauptformulars aufrufe:
Delphi-Quellcode:
Wobei halt Form2 den Wert ModalResult auf mrOK setzen muss, wenn der Login geklappt hat und auf mrCancel, wenn der Login fehlgeschlagen ist bzw. der Anwender die Anmeldung abgebrochen hat.
procedure TForm1.FormShow;
begin if Form2.ShowModal <> mrOK then begin Application.Terminate; halt; exit; end; ... end; |
Re: Login auf form2
ja wunderbar ich danke euch!
hatte es im oncreat von form1 schon ma reingehauen nur dumm das man halt immer auf form1 switchen konnte ;) thx |
Re: Login auf form2
ich mache bei mir in aller Regel eine Execute-Methode. In dieser rufe ich FormShow auf und wenn das mit mrOk geschlossen wird liefert meine Execute-methode True zurück. Somit muss ich nicht mit Application Terminate arbeiten sondern handhabe es genau wie einen Aufruf eine OpenDialogs.Execute
|
Re: Login auf form2
Zitat:
Vielleicht bin ich blind, aber ich sehe da keine andere Möglichkeit, außer im Form1.FormCreate/FormShow eine Login-Box darzustellen, und bei Falscheingaben halt mit Application.Terminate die Notbremse zu ziehen. Dass man den Aufruf der Loginbox schöner gestalten kann, da gebe ich Dir recht. Normalerweise lasse ich diese Forms gar nicht erst automatisch erstellen, sondern habe eine function SqlLogin: Boolean, die die Form zur Laufzeit erzeugt und abschließend zerstört:
Delphi-Quellcode:
(so runtergetippt, ungetestet)
function SqlLogin: Boolean;
var dlg: TDlgSqlLogin; begin dlg := TDlgSqlLogin.Create(nil); with dlg do begin result := (ShowModal = mrOK); Free; end; end; |
Re: Login auf form2
bei mir sieht es so aus:
unit2 (benennung sieht bei mir natürlich besser aus)
Delphi-Quellcode:
TForm2 = class(TForm)
[...] public class function Execute(): Boolean; end; [...] class function TForm2.Execute(): Boolean; var lForm: TForm2; begin lForm := TForm2.Create(nil); try result := lForm.ShowModal = mrOK; finally lForm.Free; end; end; [...] procedure TForm2.ButtonOKClick(Sender: TObject); begin if PasswortRichtig() then ModalResult := mrOK; end; Projektdatei
Delphi-Quellcode:
[...]
Application.Initialize; if TForm2.Execute() then begin Application.CreateForm(TForm1, Form1); Application.Run; end; [...] |
Re: Login auf form2
Ah, auch eine Möglichkeit. Aber ich bleib bei meiner :-) Oder hat Application.Terminate irgendwelche Nachteile, von denen ich wissen sollte?
|
Re: Login auf form2
Der Vorteil ist, dass die ganzen weiteren Formulare bei einem fehlerhaften Login gar nicht erst erzeugt und somit nicht wieder freigegeben werden müssen.
|
Re: Login auf form2
Deddy, wäre hier nicht Platz für deine Login-Kompo? :zwinker:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:19 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 by Thomas Breitkreuz