Delphi-PRAXiS
Seite 1 von 3  1 23      

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/129240-globale-variablen.html)

AlexanderBrade 15. Feb 2009 10:52


globale Variablen
 
Jetzt hab ich eine ganz banale FRage, aber irgendwie komme ich trotzdem nicht voran:

Wenn ich im Formular1 die Variable sp auf 2 setze, wie schaffe ich es, dass er sich das bis zum 7.Formular "merkt".
D.h. ich habe die Variable in beiden FOrmularen global(also 2x) definiert, ist das der Fehler, denn normalerweise verschwindet doch keine Varibale aus dem Speicher?!?

Vielen Dank im voraus.

DeddyH 15. Feb 2009 10:55

Re: globale Variablen
 
Ganz allgemein sollte man keine globalen Variablen verwenden, wenn es nicht notwendig ist. Aber versuch mal, mittels
Delphi-Quellcode:
Unitname.Variablenname
zuzugreifen, damit Delphi genau weiß, welche gemeint ist. Voraussetzung ist allerdings, dass die Variable im interface- und nicht im implementation-Abschnitt deklariert wurde.

Matze 15. Feb 2009 10:56

Re: globale Variablen
 
Hallo,

ja das ist der Fehler. Du darfst sie nicht 2 Mal deklarieren.
Wenn du die Variable bei "var Form1: TForm" deklarierst und die Unit1 in Unit7 über die "uses" einbindest, müsstest du die Variable nutzen können. Du kannst sie aber auch unter "public" von Unit1 deklarieren und über "Form1.Variable" im Unit7 darauf zugreifen, wenn die Unit dort eingebunden wurde.
Ich hoffe, ich erzähle gerade keinen Mist. ;)

Grüße, Matze

AlexanderBrade 15. Feb 2009 10:59

Re: globale Variablen
 
wenn sie im interface teil stehen soll wo muss sie dann deklariert werden?

DeddyH 15. Feb 2009 11:19

Re: globale Variablen
 
Unter var

AlexanderBrade 15. Feb 2009 11:58

Re: globale Variablen
 
Wenn ich das mache, sagt der Compiler in Form7 bei der Varibale, z.B. form1.sp undefinierter Bezeichner, unter public nimmt er es, liest die Variable aber auch nicht richtig aus!

DeddyH 15. Feb 2009 12:06

Re: globale Variablen
 
Unitname, nicht Formname, Du musst schon genau lesen, was wir hier schreiben.

[edit] Wobei es schon besser wäre, Properties zu definieren, da warst Du schon auf einem guten Weg. [/edit]

Sir Rufo 15. Feb 2009 12:46

Re: globale Variablen
 
Also wenn ich globale Variablen brauche ... dann packe ich die mir in eine Klasse in einer eigenen Unit.

Diese Unit zu jeder anderen Unit hinzugefügt und gut ist ...

Damit ists global und trotzdem OOP :mrgreen:

cu

Oliver

DeddyH 15. Feb 2009 12:48

Re: globale Variablen
 
Aber keine globale Variable mehr im eigentlichen Sinne. OK, die Klasseninstanz könnte man dann als globale Variable definieren :mrgreen:

Sir Rufo 15. Feb 2009 13:37

Re: globale Variablen
 
genau so ;)
Delphi-Quellcode:
unit GlobalData;

interface

type
  TGlobalData = class
  ...
  end;

var
  MyGlobalData : TGlobalData;

implementation

...

initialization

  MyGlobalData := TGlobalDate.Create;

finalization

  MyGlobalData.Free;

end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:15 Uhr.
Seite 1 von 3  1 23      

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