Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Daten formübergreifend weitergeben (https://www.delphipraxis.net/53527-daten-formuebergreifend-weitergeben.html)

Kill0r 18. Sep 2005 13:24


Daten formübergreifend weitergeben
 
Hallo alle zusammen :D
Ich habe folgendes Problem:
Ich habe bei meinem Programm eine Loginform dort wird der Benutzername und Passwort eingetragen und sollte dann per Klick auf den Login Button an die Hauptform weitergegeben werden, so damit diese die Daten versenden kann. Nun besteht aber das Problem wie bekomm ich die Daten in die Hauptform?
Die Loginform wird ja schon in der Uses Klausel eingetragen damit ich sie aufrufen kann, so kann ich nich die Hauptform in die Uses Klausel der Loginform eintragen sonst würde eine Endlosschlaufe entstehen.
So jetzt meine Frage: Wie kann ich machen, das die Hauptform merkt das auf den OK Button in der Loginform geklickt wurde?
Ich hab schon mehrere Sachen mithilfe von Procedure versucht aber immer hatte ich einen Fehler... -.-

Ich hoffe auf eure Hilfe ihr seit meine letzte Hoffnung :thumb:

Cu
Kill0r

n0b0dy 18. Sep 2005 13:26

Re: Daten formübergreifend weitergeben
 
hi,

du könntest ein ModalResult setzen und diesen Login per .ShowModal; statt .Show; aufrufen...

und dann abfragen was zurückkommt. wie bei einer MessageBox oder so :)

Kill0r 18. Sep 2005 13:40

Re: Daten formübergreifend weitergeben
 
Könntest du mir vielleicht ein Codebesipiel geben?
Ich verstehe das nicht ganz, da mit Modalresult...

Thx
Kill0r

leddl 18. Sep 2005 13:44

Re: Daten formübergreifend weitergeben
 
Du kannst solche Uses-Klauseln im Implementation-Teil deiner Units einfügen, dann entsteht keine Endlosschleife. Einfach unter der Deklaration des Forms
Delphi-Quellcode:
uses MeineUnit;
schreiben, und du kannst wie gewohnt darauf zugreifen.

Grishnak 18. Sep 2005 13:50

Re: Daten formübergreifend weitergeben
 
Login-Unit:

Delphi-Quellcode:
unit LoginUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TLoginForm = class(TForm)
    LoginEdit: TEdit;
    PasswordEdit: TEdit;
    LoginButton: TButton;
    CancelButton: TButton;
    procedure LoginButtonClick(Sender: TObject);
    procedure CancelButtonClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    Login: string;
    Password: string;
  end;

var
  LoginForm: TLoginForm;

implementation

{$R *.dfm}

procedure TLoginForm.LoginButtonClick(Sender: TObject);
begin
  Login:=LoginEdit.Text;
  Password:=PasswordEdit.Text;

  ModalResult:=mrOK;
end;

procedure TLoginForm.CancelButtonClick(Sender: TObject);
begin
  ModalResult:=mrCancel;
end;

end.
Hauptprogramm-Unit:

Delphi-Quellcode:
unit MainUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TMainForm = class(TForm)
    LoginButton: TButton;
    procedure LoginButtonClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}

uses
  LoginUnit;

function CheckLogin(Login, Password: string): boolean;
begin
  Result:=false; // <-- hier muss natürlich sinnvoller Code rein!
end;

procedure TMainForm.LoginButtonClick(Sender: TObject);
begin
  repeat
    if LoginForm.ShowModal = mrCancel then Break;
  until CheckLogin(LoginForm.Login, LoginForm.Password);
end;

end.

n0b0dy 18. Sep 2005 14:04

Re: Daten formübergreifend weitergeben
 
genau so hab ichs gemeint :thumb:

Kill0r 18. Sep 2005 14:07

Re: Daten formübergreifend weitergeben
 
Oh Danke vielmals :P
Ihr seit die grössten :thumb: :dp:

Cu
Kill0r


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 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