Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Globale Variablen (https://www.delphipraxis.net/10088-globale-variablen.html)

Christian Seehase 11. Okt 2003 16:05

Re: Globale Variablen
 
Moin Silent,

ich meine nahezu das Gleiche wie sakura.


Delphi-Quellcode:
type
  TForm1 = class(TForm)
    // Was halt so auf dem Formular ist
    // ergänzt um Deine Prozeduren
    procedure MyProc1;
    procedure MyProc2;
  private
    // Klassenfeld (wie sakura schon sagte)
    Firgendwas: boolean;
  public
    // Als Eigenschaft veröffentlicht, damit ggf. von Aussen zugegriffen werden kann
    // ansonsten kann man das auch weglassen
    property irgendwas : boolean read FfVariable;
  end;

//...

implementation

procedure TForm1.MyProc1;
begin
  irgendwas := false;
end;

procedure TForm1.MyProc2;
begin
  irgendwas := true;
end;
Oder als eigenes Objekt:

Delphi-Quellcode:
type
  TMyClass = class(TObject)
  private
    Firgendwas : boolean;
  public
    procedure MyProc1;
    procedure MyProc2;
    // Wiederum bei Bedarf
    property irgendwas : boolean read Firgendwas;
  end;

implementation

procedure TMyClass.MyProc1;
begin
  irgendwas := false;
end;

procedure TMyClass.MyProc2;
begin
  irgendwas := true;
end;
Eingebunden z.B. in das Formular

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    //...
    procedure FormCreate(sender: TObject);
    procedure FormDestroy(sender: TObject);
  private
    FMyObject : TMyClass;
  public
    property MyObject : TMyClass read FMyObject;
  end;

implementation

// In OnCreate des Formulares erstellen
procedure TForm1.FormCreate(sender: TObject);
begin
  FMyObject := TMyClass.Create;
end;

// und im OnDestroy wieder freigeben
procedure TForm1.FormDestroy(sender: TObject);
begin
  FreeAndNil(FMyObject);
end;
War das so als Beispiel verständlich?

Pseudemys Nelsoni 12. Okt 2003 01:05

Re: Globale Variablen
 
SirThornBerrie,Christian: das hilft mir ziemlich weiter, danke für die mühe 8)

Zitat:

War das so als Beispiel verständlich?
auf jeden fall :wink:

Matze 12. Okt 2003 08:08

Re: Globale Variablen
 
Ich hätte mal eine Frage dazu:

Wieso sind globale Variablen denn schlecht? :gruebel:

Mit Luckies Beitrag:

Zitat:

Zitat von Luckie
Globale Variablen sind nicht generell schlecht. Man sollte nur wissen, was man tut.

fange ich nicht so viel an.

Daniel B 12. Okt 2003 08:13

Re: Globale Variablen
 
Weil man solche Variablen von überall und aus jeder Prozedur verändern kann. Irgendwann wenn man zuviele hat, verliert man einfach die Übersicht, wann welche Variable welchen Zustand hat... Solange man es im Griff hat, kann man sie ja ruhig benutzen, wenn Du aber 50 Stück hast und 3000 Prozeduren und von überall und zzu jeder Zeit kannst Du die Globals verändern, ich glaube das Du da nicht mehr weisst, oder durchdenken kannst, wann welche Variable wie aussieht.

Alexander 12. Okt 2003 08:14

Re: Globale Variablen
 
..und vor allem, wenn du dir den Quellcode ein Jahr später ankuckst :mrgreen:

Matze 12. Okt 2003 08:28

Re: Globale Variablen
 
Achso, vielen Dank!

Ich dachte schon, das Programm wird dadurch langsamer. Ich hatte maximal 40 proceduren bis jetzt. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 Uhr.
Seite 2 von 2     12   

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