![]() |
Globale Variablen
Hoi,
ich benutze ziemlich oft globale variablen, ich höre aber immer wieder das das scheisse ist. Nun mal meine Frage: Wie soll ich denn einen zustand aus 2 prozeduren heraus sonst ändern? soll ich die variablen in einer datei ablagen?(ist wohl noch blöder)...wie gesagt ich möchte mit 2 prozeduren einen zustand(bolesche variable) prüfen...aber wie mach ich sowas ohne globale variablen ? |
Re: Globale Variablen
Indem Du an etwas OOP denkst und Dir ne neue Klasse machst... Zum Bleistift...
|
Re: Globale Variablen
|
Re: Globale Variablen
was meinst du mit neuer klasse?
In dem thread seh ich leider auch keine alternative zu globalen variablen :( |
Re: Globale Variablen
Globale Variablen sind nicht generell schlecht. Man sollte nur wissen, was man tut.
|
Re: Globale Variablen
hoi luckie, jo, genau so denke ich (eigentlich) auch.
Aber ich kriege das halt oft zu hören, da ich manchmal viele globale habe. zum beispiel sowas(macht keinen sinn aber so als beispiel eben):
Delphi-Quellcode:
VAR irgendwas: Boolean;
Delphi-Quellcode:
procedure 1;
begin irgendwas := false; end;
Delphi-Quellcode:
procedure 2;
begin irgendwas := true; end; also mit 2 proceduren, eine bestimmte variable ändern, für mich gibts da eigentlich nur dateien wo man die variable reinpackt, die registry, oder eben die globale variable....letztere ist ja wohl die einfachste...oder geht es auch noch anders? |
Re: Globale Variablen
Wie wäre es denn mit der Nutzung von Klassenfeldern - die von mir bevorzugte Methode und bei uns im Hause auch erzwungene Methode ;-) Kündigungen können ja soooo einfach ausgestellt werden :mrgreen:
...:cat:... |
Re: Globale Variablen
Moin Silent,
bei den von Dir genannten Beispiel könntest Du ja mal prüfen, ob es nicht sinnvoll wäre die beiden Prozeduren als Methoden zu des Formulares zu deklarieren, und die Variable als Eigenschaft/Feld im Formularobjekt, oder ob es eventuell sinnvoll wäre diese drei Teile in einer eigenen Klasse zusammenzufassen, die dann wiederum als Typ einer Eigenschaft eines anderen Objektes dient. Ausserdem kann man noch zwischen unit- und projektglobal unterscheiden. Wird die Variable erst unter implementation deklariert so ist sie für andere Units nicht sichtbar, und somit würde sich die Gefahr verringern die Variable unbeabsichtigt zu verändern. Am gefährlichsten ist eben die Deklaration im interface Abschnitt. |
Re: Globale Variablen
sakura: wie verwende ich die ? :pale:
christian: dein erklärung ist sicher für gute programmierer spitze erklärt, ich versteh sie allerdings nicht so, da ich nicht weiss wie ich die beiden prozeduren als methoden des formulars benutzen könnte, und mit klassen hab ich noch nicht gearbeitet. :\ gibt es ein beispiel? |
Re: Globale Variablen
Delphi-Quellcode:
oder
TForm1 = class(TForm)
private irgendwas: Boolean; procedure do1; procedure do2; [...] var form1: TForm1; [...] procedure TForm1.do1; begin irgendwas := False; end; procedure TForm1.do2; begin irgendwas := False; end;
Delphi-Quellcode:
TForm1 = class(TForm)
public irgendwas: Boolean; [...] var form1: TForm1; [...] procedure do1; begin form1.irgendwas := False; end; procedure do2; begin form1.irgendwas := False; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 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