Autor Beitrag
Sqall
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 30



BeitragVerfasst: Di 24.01.06 20:58 
Hi,

also mien problem ist, ich hab da nen schönes programm. In einer Form sind eine Menge globale variablen. Und in einer anderen form muss ich auf diese variablen zugreifen. nun dachte ich, es geht wie bei procedures oder functions, sodass ich vor die variable einfach Form1.variable schreibe, aber fehlanzeige. Das geht bestimmt, nur müsstet ihr mir helfen. Danke

sqall

_________________
Bones... Promises... Both breakes
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Di 24.01.06 21:11 
Auf globale variablen kannst du ohne Prefix zugreifen.
z.b
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
Unit 1;

interface

uses
   ...

var EineVariable: Integer;

...

Unit2;

...


   EineVariable := 1;

...

_________________
Markus Kinzler.
Logikmensch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 390

Win XP
Delphi 2007 Prof., XE2, XE5
BeitragVerfasst: Mi 25.01.06 07:25 
Titel: Zugriff auf öffentliche Form-Variablen
Hallo!

Du kannst auch auf öffentliche Variablen eines Forms FORM2 von einem anderen Form FORM1 aus zugreifen, einfach indem Du die betreffende Form-Unit (z.B. UNIT2.PAS) im implementation-Abschnitt über uses einbindest. Die betreffenden Variablen müssen dann aber im public oder published-Abschnitt des Form stehen, damit man sie von außen "sehen" kann.
Besser ist allerdings die Variante, die eigentlichen Variablen im protected-Abschnitt mit vorangehenden F zu benennen (z.B. Fadresse:string) und im public-Abschnitt jeweils ein property anzulegen, das auf diese Variable zugreift:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
type
  TForm2=class(TForm)
    protected
      Fadresse:string;
    public
      property adresse:string read Fadresse write Fadresse;
  end;


Der Zugriff auf diese Variablen bzw. properties erfolgt von Form1 aus mit vorangestelltem Form2, also z.B. Form2.adresse.

Variablen gehören aber grundsätzlich nur dann in ein Form, wenn sie von der Sache her wirklich zu dem Formular gehören. Haben sie aber wirklich globalen Charakter, dann solltest Du sie, wie mkinzler schreibt, im Interface-Abschnitt der betreffenden Unit als global deklarieren.

Liebe Grüße,

Claus.
Sqall Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 30



BeitragVerfasst: Do 26.01.06 17:03 
Gut zu wissen. Danke.

_________________
Bones... Promises... Both breakes