Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Variablen Übergeben (mit Hilfe von property) (https://www.delphipraxis.net/106556-variablen-uebergeben-mit-hilfe-von-property.html)

Stelo 12. Jan 2008 18:48


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:
  private
    code : string;
  public
 property neu_code: string read code;
  end;
Unit3 //Form3
Delphi-Quellcode:
implementation

uses Unit2;

{$R *.dfm}

procedure TForm3.FormCreate(Sender: TObject);
begin
Label3.Caption := form2.neu_code;
end;
Vielen Dank schon einmal für eure Hilfe und Geduld.

marabu 12. Jan 2008 19:05

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

Stelo 12. Jan 2008 19:23

Re: Variablen Übergeben (mit Hilfe von property)
 
Dieses Ereignis benutzte ich gar nicht. :shock:

In meiner Unit2 steht nur:

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
//hier der code, wäre jetzt zu lang und unwichtig

Form2.Close;
Form3.Show;

end;
Und das wars...

marabu 12. Jan 2008 19:26

Re: Variablen Übergeben (mit Hilfe von property)
 
Dann liest du in deinem Beispiel auch "nichts" aus - per definitionem einen leeren String.

Stelo 12. Jan 2008 19:49

Re: Variablen Übergeben (mit Hilfe von property)
 
Naja doch, in der Unit 3 les ich das ja dann aus:

Delphi-Quellcode:
procedure TForm3.FormCreate(Sender: TObject);
begin
Label3.Caption := form2.neu_code;
end;
Muss ich in der Unit 2 auch etwas auslesen?

dominikkv 12. Jan 2008 20:00

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.

Stelo 12. Jan 2008 20:14

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