![]() |
Re: Variablenübergabe
Ich möchte eine Variable in einem Formular eingeben und in einem anderen Formular weiterverarbeiten.
|
Re: Variablenübergabe
Delphi-Quellcode:
unit Meine_ERSTE_Unit;
interface type TForm1 = class(TForm) private Mein_privates_Feld: String; // Hier kann man nicht von außen zugreifen public Mein_öffentliches_Feld: String; // Hier schon property Feld: String read Mein_privates_Feld write Mein_privates_Feld; // Mit dem hier greife ich dann doch auf das erste Feld zu end; var Form1: TForm1; Globale_Variable: String; // einfach eine globale Variable implementation // Nur wenn du auch auf Meine_ZWEITE_Unit zugreifen willst: uses Meine_ZWEITE_Unit; // usw
Delphi-Quellcode:
Der Ort wo uses mit der Unit steht entscheidet auch wo du diese Unit nutzen kannst.
unit Meine_ZWEITE_Unit;
interface // blablabla implementation uses Meine_ERSTE_Unit; // jetzt kennt diese Unit unsere erste Unit procedure WasWeisIch; begin showmessage(Globale_Variable); showmessage(Form1.Mein_öffentliches_Feld); showmessage(Form1.Feld); end; Wenn du zB die Unit unter interface bekannt gibst iste diese in der ganzen Unit zu sehen, wenn due Unit im Implemantation-Bereich steht kannst du auch nur im Implementation-Bereich darauf zugreifen. Es dürfen aber nicht beide Unit jeweils in der anderen Unit im Interface stehen, da es sonst eine Zirkuläre Unit-Referenz gibt. |
Re: Variablenübergabe
Hallo wireless,
vielleicht hilft ein Beispiel weiter. Also einmal das Hauptformular:
Delphi-Quellcode:
Nun das Unterformular:
unit frmMainMenu;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type THautFormular = class(TForm) Edit1: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } vString: String; // <------- Die Variable die weitergegeben soll. end; var HautFormular: THautFormular; implementation uses frmunterformular; {$R *.dfm} procedure THautFormular.Button1Click(Sender: TObject); begin vString:= Edit1.Text; // <--------------- Text in die Variable abspeichern. Edit1.Clear; end; procedure THautFormular.Button2Click(Sender: TObject); begin Unterformular.Show; // <---------------- Unterformular aufrufen end; procedure THautFormular.Button3Click(Sender: TObject); begin Edit1.Text := vString; // <-------- Nachdem die Variable im Unterformular geändert worden ist. end; end.
Delphi-Quellcode:
Roter Kasten
unit frmunterformular;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TUnterformular = class(TForm) Edit1: TEdit; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Unterformular: TUnterformular; implementation uses frmMainMenu; {$R *.dfm} procedure TUnterformular.Button1Click(Sender: TObject); begin Edit1.Text := HautFormular.vString; // <-------- Die Variable im TEdit anzeigen. end; procedure TUnterformular.Button2Click(Sender: TObject); begin HautFormular.vString := Edit1.Text; // <-------- Ein veränderter Text in die Variable speichern. end; end. Bis bald Chemiker |
Re: Variablenübergabe
Hallo Gemeinde,
danke für die Hilfe, manchmal sieht man den Wald vor lauter Bäumen nicht. Vor allem, wenn man permanent irgendwas ändert und dann die richtig übergebene Variable noch überschreibt und an der falschen Stelle ausliest. Jetzt weiß ich endlich, wie man mit showmessage eine Variable ausgibt. Das hat mir gezeigt, dass ich die Variable überhaupt ÜBERGEBEN habe! freundliche Grüße Sigi -- wireless |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 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