![]() |
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 |
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 :) |
Re: Daten formübergreifend weitergeben
Könntest du mir vielleicht ein Codebesipiel geben?
Ich verstehe das nicht ganz, da mit Modalresult... Thx Kill0r |
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:
schreiben, und du kannst wie gewohnt darauf zugreifen.
uses MeineUnit;
|
Re: Daten formübergreifend weitergeben
Login-Unit:
Delphi-Quellcode:
Hauptprogramm-Unit:
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.
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. |
Re: Daten formübergreifend weitergeben
genau so hab ichs gemeint :thumb:
|
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