Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Globale Variablen (https://www.delphipraxis.net/37173-globale-variablen.html)

Morlon 1. Jan 2005 21:26


Globale Variablen
 
Hallo,

ich hab ein kleines Variablen-Problem. Ich habe ein Programm, dass aus einer MDI-Form, 2 MDI-Childs und ein paar weiteren Forms besteht. Jetzt möchte ich auf ein paar Variablen aus ALLEN Forms zugreifen und diese ändern können.

Bsp. ich schreibe in einem MDI-Child einen Wert in eine Variable und in 2 anderen Forms soll damit gerechnet werden.

Kann mir jemand sagen wo/wie ich diese Variablen zu deklarieren hab?!?

Danke euch
Morlon

Dax 1. Jan 2005 21:27

Re: Globale Variablen
 
Das machst du am besten in einer separaten Unit, die von allen Teilen deines Programms verwendet wird.

Morlon 1. Jan 2005 21:36

Re: Globale Variablen
 
Das bin ich grad am Versuchen, aber ich glaub ich bin zu dumm :wall:
Hab bisher mit VB gearbeitet, und da geht das alles so wunderbar einfach ;)

Ich hab eine unit namens globVar.pas angelegt und dort die Variable glintTest angelegt. In einer Form hab ich globVar per Uses eingebunden, aber ich find beim besten willen nicht raus, wie ich jetzt auf meine glintTest zugreigen kann... :shock:

grrr

Dax 1. Jan 2005 21:38

Re: Globale Variablen
 
So vielleicht?
Delphi-Quellcode:
uses globVar;
...

globVar.glintTest ...

Morlon 1. Jan 2005 21:40

Re: Globale Variablen
 
[Hinweis] globVar.pas(8): Variable 'glintTest' wurde deklariert, aber in 'globVar' nicht verwendet
[Fehler] MAIN.PAS(48): Undefinierter Bezeichner: 'glintTest'

:?

Morlon 1. Jan 2005 21:52

Re: Globale Variablen
 
mal ein kurzer auszug:
UNIT globVar:
Delphi-Quellcode:
unit globVar;

interface

implementation

var
  intTest : Integer;

procedure test;
begin
  intTest := 1;
end;
end.
UNIT MAIN:
Delphi-Quellcode:
[...]

procedure TMainForm.Steuerung1Click(Sender: TObject);
begin
  globVar.intTest := 1;
  globVar.test;
end;

[...]

Weder die Procedur noch die Variablenzuweisung geht, sagt mit bei beidem 'undefinierter Bezeichner'

Dax 1. Jan 2005 22:03

Re: Globale Variablen
 
So musst du es machen:
Delphi-Quellcode:
unit globVar;

interface

procedure test;

var
  intTest : Integer;

implementation

var
  intTest : Integer;

procedure test;
begin
  intTest := 1;
end;
end.

Morlon 1. Jan 2005 22:07

Re: Globale Variablen
 
Manchmal sieht man vor Bäumen den Wald nicht mehr :drunken: danke dir ;) das 2.
Zitat:

Zitat von Dax
var
intTest : Integer;

war noch zuviel, ansonsten ging :)

Vielen vielen dank

SirThornberry 1. Jan 2005 23:38

Re: Globale Variablen
 
warum führt ihr Marlon alle auf den falschen Weg? :?
gehört Delphi und Objectpascal nicht irgendwie zusammen, und bei Objectorientierter Programmierung sollte man auf globale Variablen möglichst verzichten.

Es empfiehlt sich die variable im Public-Teill des Haupformulares (MDI-Form) zu declarieren denn dieses wird ja als erstes erstellt und somit können die anderen Formulare auch auf die Instanz des Hauptfomulares zugreifen, und übersichtlicher ist es dadurch auch.


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