![]() |
Variablen Übergeben (mit Hilfe von property)
Hallo,
ich weiß, dass habt ihr hier im Forum schon oft gehört, aber auch ich möchte eine Variable von Form2 zu Form3 übergeben. Ich habe gegoogelt und auch hier im Board gesucht und bin dabei auf diese property gestoßen und trotzdem funktioniert nichts. Es wird keine Fehlermeldung angezeigt, aber in meinem Labelfeld wird eben auch nichts ausgegeben ... Also nun mal ein paar Auszüge aus dem Code: Unit2 // Form2
Delphi-Quellcode:
Unit3 //Form3
private
code : string; public property neu_code: string read code; end;
Delphi-Quellcode:
Vielen Dank schon einmal für eure Hilfe und Geduld.
implementation
uses Unit2; {$R *.dfm} procedure TForm3.FormCreate(Sender: TObject); begin Label3.Caption := form2.neu_code; end; |
Re: Variablen Übergeben (mit Hilfe von property)
Herzlich willkommen in der Delphi-PRAXiS, Stelo.
Deine Forms werden in einer bestimmten Reihenfolge erstellt, vermutlich Form2 direkt vor Form3. Dein Zugriff auf die property Form2.neu_code geschieht zu einem Zeitpunkt, zu dem diese property den von dir erwarteten Inhalt vielleicht noch gar nicht aufweist? Was schreibst du denn im Ereignis OnCreate() von Form2 dort rein? Freundliche Grüße vom marabu |
Re: Variablen Übergeben (mit Hilfe von property)
Dieses Ereignis benutzte ich gar nicht. :shock:
In meiner Unit2 steht nur:
Delphi-Quellcode:
Und das wars...
procedure TForm2.Button1Click(Sender: TObject);
begin //hier der code, wäre jetzt zu lang und unwichtig Form2.Close; Form3.Show; end; |
Re: Variablen Übergeben (mit Hilfe von property)
Dann liest du in deinem Beispiel auch "nichts" aus - per definitionem einen leeren String.
|
Re: Variablen Übergeben (mit Hilfe von property)
Naja doch, in der Unit 3 les ich das ja dann aus:
Delphi-Quellcode:
Muss ich in der Unit 2 auch etwas auslesen?
procedure TForm3.FormCreate(Sender: TObject);
begin Label3.Caption := form2.neu_code; end; |
Re: Variablen Übergeben (mit Hilfe von property)
Du hast ein Zeitliches Problem!
Du greifst im FormCreate der Form3 auf Form2 zu. Diese Methode wird (wahrscheinlich) beim Programmstart ausgeführt. Das heißt die einzige Möglichkeit die Variable "code" zu verändern wäre beim Programmstart noch vor TForm3.FormCreate, dh bei TForm2.FormCreate. Wenn du da also die Variable nicht veränderst wirst du einen leeren String auslesen. |
Re: Variablen Übergeben (mit Hilfe von property)
Hmm ... aber in die Variable code werden ja Daten reingeschrieben, die dann erst nach dem Klicken auf Form2 in Form2 verarbeitet werden.
Also kann ich das ja gar nicht schon in Form2.Create() schreiben ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:56 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