Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Variablen von Form1 zu Form2 übertragen (https://www.delphipraxis.net/109825-variablen-von-form1-zu-form2-uebertragen.html)

MrMyagi 8. Mär 2008 13:03


Variablen von Form1 zu Form2 übertragen
 
Moin,
wie ist es möglich zb eine Variable von Form 1 auf Form 2
zu übergeben/übertragen ?

mfG, Nico

DeddyH 8. Mär 2008 13:09

Re: Variablen über Formen übertragen
 
Was meinst Du damit?

MrMyagi 8. Mär 2008 13:11

Re: Variablen von Form1 zu Form2 übertragen
 
Ich habe jetzt verschiedene Eingabe in Form 1 gemacht zb
Wohnort etc diese habe ich dann in einer Variablen gespeichert.
Diese möchte ich jetzt jedoch auch in Form 2 benutzen können.




mfG, Nico

DeddyH 8. Mär 2008 13:11

Re: Variablen von Form1 zu Form2 übertragen
 
Definiere sie doch als Property von Form1, das ist IMHO die sauberste Lösung.

hoika 8. Mär 2008 13:12

Re: Variablen von Form1 zu Form2 übertragen
 
Hallo,

nimm eine 3. unit.
Packe dort deine Variablen (Records, Klassen) rein
in den interface-Teil
und binde diese "Data"-Unit in beide Form-Units ein.


Heiko

MrMyagi 8. Mär 2008 13:13

Re: Variablen von Form1 zu Form2 übertragen
 
Habt ihr vielleicht nen konkretes Beispiel, wie
soetwas aussehen könnte?

Aber danke erstmal für die vielen Antworten.

DeddyH 8. Mär 2008 13:20

Re: Variablen von Form1 zu Form2 übertragen
 
Delphi-Quellcode:
type TMainForm = class(TForm)
  ...
  private
    { Private-Deklarationen }
    FEinWert: integer;
  public
    { Public-Deklarationen }
    property EinWert: integer read FEinWert; //ReadOnly-Property kann von außen nicht geändert werden
  end;
Abfragen kannst Du dann mit
Delphi-Quellcode:
MainForm.EinWert

MrMyagi 8. Mär 2008 13:21

Re: Variablen von Form1 zu Form2 übertragen
 
Danke, werde es sofort einmal ausprobieren :thumb:


mfG, Nico

MrMyagi 8. Mär 2008 13:40

Re: Variablen von Form1 zu Form2 übertragen
 
Hab das jetzt mal ausprobiert, leider taucht
dort noch ein Fehler aus (welcher wahrscheinlich von meinem
Unverständnis kommt :oops: )

Delphi-Quellcode:
 private
    { Private-Deklarationen }
    FAdresseAbfahrt, FPlzAbfahrt, FStadtAbfahrt, FAdresseAnkunft, FPlzAnkunft, FStadtAnkunft : String;
  public
    { Public-Deklarationen }
    property AdresseAbfahrt, PlzAbfahrt, StadtAbfahrt, AdresseAnkunft, PlzAnkunft, StadtAnkunft : String read FAdresseAbfahrt, FPlzAbfahrt, FStadtAbfahrt, FAdresseAnkunft, FPlzAnkunft, FStadtAnkunft;
  end;
Fehler:
[Fehler] Routenplaner1.pas(32): Eigenschaft 'AdresseAbfahrt' existiert nicht in Basisklasse
[Fehler] Routenplaner1.pas(32): Ungültige Compileranweisung: 'read'
[Fehler] Routenplaner1.pas(32): Bezeichner redefiniert: 'FPlzAbfahrt'
...
[Fehler] Routenplaner1.pas(32): Bezeichner redefiniert: 'FStadtAnkunft'
usw

mfG, Nico

DeddyH 8. Mär 2008 13:42

Re: Variablen von Form1 zu Form2 übertragen
 
Auch wenn es mehr Tipparbeit ist, Du musst die Properties schon einzeln definieren.
Delphi-Quellcode:
property AdresseAbfahrt: string read FAdresseAbfahrt;
property PlzAbfahrt: string read FPlzAbfahrt;
...

MrMyagi 8. Mär 2008 13:46

Re: Variablen von Form1 zu Form2 übertragen
 
Ok, Danke
und wenn ich jetzt zb auf der Form1 2 in die Variable
AdresseAbfahrt speichern will mache ich dass dann auch ganz normal?
So:
Delphi-Quellcode:
AdresseAbfahrt := '2';
Bzw.:
Wenn ich die 2 der Variable auf der Form1 zugewiesen habe,
kann ich diese Variable dann auch auf Form2 ganz normal anzeigen lassen?
also so:
Delphi-Quellcode:
Label1.caption := AdresseAbfahrt;
oder muss ich die irgendiwe anders abrufen?

mfG, Nico

DeddyH 8. Mär 2008 13:50

Re: Variablen von Form1 zu Form2 übertragen
 
Du kannst nicht direkt in AdresseAbfahrt schreiben, da Du sie ja ReadOnly definiert hast. Stattdessen schreibst Du in Form1 (nur dort geht das nämlich):
Delphi-Quellcode:
FAdresseAbfahrt := 'Nirgendwo'; //die private Variable belegen
In Form2 kannst Du dann z.B. schreiben
Delphi-Quellcode:
ShowMessage(Form1.AdresseAbfahrt);

MrMyagi 8. Mär 2008 15:20

Re: Variablen von Form1 zu Form2 übertragen
 
Klappt jetzt alles bestens,
danke noch einmal.



mfG, Nico

Power-Poler 21. Mär 2008 18:43

Re: Variablen von Form1 zu Form2 übertragen
 
Hi, habe grad das gleiche Problem, aber bei mir wird immer irgenwie der wert 0 übertragen, muss ich das besondes deklariren, oder was mach ich falsch?
Hier der code:
Delphi-Quellcode:
 private
    { Private declarations }
    FAbstand3: Integer;
  public
    { Public declarations }
    property Abstand3: integer read FAbstand3;
  end;
.
.
.
procedure TForm1.Button1Click(Sender: TObject);
var
Abstand3 :Integer;
begin
Abstand3 := 5;
end;
// Und so rufe ich es auf in Form3 auf:
procedure TForm3.Button1Click(Sender: TObject);
begin
ShowMessage (inttoStr(Form1.Abstand3));
end;
Was mach ich falsch?
Als Message steht da immer 0
Danke im Voraus
MfG
Power-Poler

Hat sich erledigt, habe das F beim eintragen des Wertes übersehen, sorry :oops:


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