Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Variable Übergeben (https://www.delphipraxis.net/143443-variable-uebergeben.html)

deplinux 16. Nov 2009 11:41


Variable Übergeben
 
Hallo,

ich habe 2 Forms:

- Login
- Hauptprogramm

Wie kann ich es machen dass der Benutzername der im Login Form eingegeben wurde im Hauptprogramm verwendet werden kann?

DeddyH 16. Nov 2009 12:17

Re: Variable Übergeben
 
Ich würde mir eine Property Username im Hauptform deklarieren und bei erfolgreichem Login vom Loginform befüllen lassen.

Bernhard Geyer 16. Nov 2009 12:20

Re: Variable Übergeben
 
Zitat:

Zitat von DeddyH
Ich würde mir eine Property Username im Hauptform deklarieren und bei erfolgreichem Login vom Loginform befüllen lassen.

und damit rekursive abhängigkeiten verursachen :-(

Definiere eine Funktion die du vom Hauptformular aufrufst

Delphi-Quellcode:
function DoLogin(var UserName, Password: String): Boolean;
var
  dlg: TMyLoginDlg;
begin
  result := False;
  dlg := TMyLoginDlg.Create(nil);
  try
    if dlg.ShowModal = mrOk then
    begin
      result := True;
      UserName := dlg.EditUser.Text;
      Password := dlg.EditPassword.Text;
    end
  finally
    dlg.Free;
  end;
end;

DeddyH 16. Nov 2009 12:25

Re: Variable Übergeben
 
Wieso rekursiv?

Bernhard Geyer 16. Nov 2009 12:27

Re: Variable Übergeben
 
Zitat:

Zitat von DeddyH
Wieso rekursiv?

Die Mainform muß was vom Loginform wissen (Anzeige mit ShowModal) und as Loginform vom Hauptformular (Property setzen).

deplinux 16. Nov 2009 12:28

Re: Variable Übergeben
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von DeddyH
Ich würde mir eine Property Username im Hauptform deklarieren und bei erfolgreichem Login vom Loginform befüllen lassen.

und damit rekursive abhängigkeiten verursachen :-(

Definiere eine Funktion die du vom Hauptformular aufrufst

Delphi-Quellcode:
function DoLogin(var UserName, Password: String): Boolean;
var
  dlg: TMyLoginDlg;
begin
  result := False;
  dlg := TMyLoginDlg.Create(nil);
  try
    if dlg.ShowModal = mrOk then
    begin
      result := True;
      UserName := dlg.EditUser.Text;
      Password := dlg.EditPassword.Text;
    end
  finally
    dlg.Free;
  end;
end;

Danke schoneinmal dafür.

Ich habe jetzt den Button im Loginformular.

Nur wie mache ich das jetzt mit deiner Funktion?

Muss die ins Login Formular oder ins 2.?

DeddyH 16. Nov 2009 12:29

Re: Variable Übergeben
 
@Bernhard: unter Rekursion versteh ich aber etwas anderes ;)
@deplinux: in dem Code wird das LoginForm erst erzeugt, wo muss der Code also hin?

Sherlock 16. Nov 2009 13:31

Re: Variable Übergeben
 
Was Bernard wohl meinen dürfte ist eine zyklische Referenzierung.

Sherlock

shmia 16. Nov 2009 14:12

Re: Variable Übergeben
 
Zitat:

Zitat von DeddyH
Ich würde mir eine Property Username im Hauptform deklarieren und bei erfolgreichem Login vom Loginform befüllen lassen.

Anderstrum.
Das modale Login-Formular hat zwei Properties:
Delphi-Quellcode:
property UserName:string;
property Password:string;
Diese Properties werden über Get- und Setmethoden an die beiden Edits auf dem Formular angebunden.
Ein direkter Zugiff auf die Edits vom Hauptformular aus findet nicht statt.
Delphi-Quellcode:
function DoLogin(var UserName, Password: String): Boolean;
var
  dlg: TMyLoginDlg;
begin
  dlg := TMyLoginDlg.Create(nil);
  try
    dlg.Username := 'default'; // optional: default user vorschlagen
    result := (dlg.ShowModal = mrOk); // Login Dialog anzeigen
    if result then
    begin
      // Ergebnis abgreifen
      UserName := dlg.Username;
      Password := dlg.Password;
    end
  finally
    dlg.Free;
  end;
end;

DeddyH 16. Nov 2009 14:14

Re: Variable Übergeben
 
Damit könnte ich leben :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:21 Uhr.

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