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 an eine andere Form "schicken" (https://www.delphipraxis.net/68805-variablen-eine-andere-form-schicken.html)

qb-tim 5. Mai 2006 17:43


Variablen an eine andere Form "schicken"
 
Hi,

ich würde gerne wissen, wie man eine in (z.Bsp) Form1 deklarierte Variable (außerhalb der Prozeduren) an Form2 "weitergibt" damit ich sie da benutzten kann. Mein Beispiel:

Delphi-Quellcode:
//in Form1:
  //...
  var H, W, D : Integer;
  //...
  //in einer OnClick Prozedur:
  H := 31;
  W := 32;
  D := 32;
  //...
  end.
//in Form2:
  //...
  var V : Integer;
  //...
  //in der OnActivate Prozedur:
  V := H * W * D;
  Label1.Caption := IntToStr(V);
  //...
  end.

Khabarakh 5. Mai 2006 17:45

Re: Variablen an eine andere Form "schicken"
 
Erstelle für die drei Felder jeweils eine öffentliche(public) Property, diese kannst du dann über eine Instanz von TForm1 überall benutzen.

Martin K 5. Mai 2006 17:57

Re: Variablen an eine andere Form "schicken"
 
Du brauchst keine public-property zu nehmen.
Du kannst auch einfach deine Variablen behalten (wenn sie global definiert sind) und einfach den Namen der einen Unit bei der jeweils anderen unter implemantation uses ... schreiben.

Beispiel:
Delphi-Quellcode:
unit Unit2; //Form2

interface

uses
  {...}

type
  TForm2 = class(TForm)
    {...}
  end;

var
  Form2: TForm2;

implementation

uses Unit1; //<-- hier hinzufügen, dann kannst du alle Variablen die in Unit1 global definiert sind auch in dieser Unit2 verwenden!

{...}
Ich hoffe, ich habe mich verständlich ausgedrückt, ansonsten:
:arrow: bei Fragen einfach fragen! :mrgreen:

qb-tim 5. Mai 2006 18:03

Re: Variablen an eine andere Form "schicken"
 
Danke :???:


:dp:

SirThornberry 5. Mai 2006 18:03

Re: Variablen an eine andere Form "schicken"
 
@Martin K: Natürlich ist dies eine Variante, aber man sollte doch Leuten welche Object-Pascal verwenden die objetorientierte Programmierung näher bringen. Alles was zu einem Object gehört soll auch darin declariert sein. Und nur Dinge die nicht zu irgend einem Object gehören (was es aber eigentlich nicht gibt) gehören zu den Globalen.
Leider wird auch im Buch Delphi für Kids das ganze etwas anders gesehen.

Ich würde die Variante von Khabarakh klar bevorzugen.

Martin K 5. Mai 2006 18:11

Re: Variablen an eine andere Form "schicken"
 
@SirThornberry:
Naja, ich dachte mir halt, dass dies doch die deutlich einfachere Variante ist und außerdem wollte qb-tim ja Variablen haben (die er wahrscheinlich ohnehin schon global definiert hatte) und keine Object-Propertys.

Mal abgesehen davon:
Wenn man in einer Unit die Form der anderen aufruft (z.B. Form2. in Unit1), dann fragt ja Delphi ohnehin schon beim compilieren, ob nicht die andere Unit hinzugefügt werden soll.
Dann kann man sich das oben geschriebene komplett sparen...

Also ich bin halt immer für die einfachere Variante :wink:

Khabarakh 5. Mai 2006 19:15

Re: Variablen an eine andere Form "schicken"
 
Auch wenn qb-tim globale Variablen benutzt hat, so wollte er doch eigentlich auf die Variablen als Member seiner Form und nicht der Unit zugreifen. Und wenn du schon bei solchen Winzigkeiten OOP den Rücken zukehrst, möchte ich deine größeren Projekte gar nicht sehen ;) .


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz