![]() |
Re: globale Variablen?
Zitat:
Wenn Du machst:
Delphi-Quellcode:
Dann in Form2:
Form1: TForm...
... public fAbfrageStarten: Boolen; ... ...
Delphi-Quellcode:
dann ist AbfrageStarten bereits geändert.
Form1.fAbfrageStarten := True;
Du könntest natürlich in Form2 machen:
Delphi-Quellcode:
Das müsstest Du dann aber immer machen, wenn Du Form1.AbfrageStarten ändern möchtest.
...
if Form1.VerbindungGeoeffnet and Form1.WerteAbgefragt and Form1.DarfGestartetWerden then begin Form1.fAbfrageStarten := True; end else begin Form1.fAbfrageStarten := False; end; Also kannst Du es auch gleich im Setter für AbfrageStarten in Form1 erledigen:
Delphi-Quellcode:
Form1: TForm...
... private fAbfrageStarten: Boolean; procedure SetAbfrageStarten(...); ... published ... property AbfrageStarten: Boolean write SetAbfrageStarten; ... end; ... ... procedure Form1.SetAbfrageStarten(...); begin if ... and ... and ... then begin ... fAbfrageStarten := True; end else begin ... fAbfrageStarten := False; end; end; |
Re: globale Variablen?
So meinte ich das ja (das untere)
|
Re: globale Variablen?
Das problem an der "unteren" variante ist,
Wenn du deine Unit Veröffentlichst und ein anderer nutzt die Variablen, blickt der niemals das er diese Kointrollen selbst machen mus. Mittels Get und Set Methoden Sorgst du Unter Garantie dafür das diese Prüfungen gemacht werden. Zusätzlich hast du ja noch die Möglichkeit bei Properties nur Lesen, oder nur schreiben zu zu lassen. Also auf das Beispiel mit dem Auto bezogen, kannst du die Gesamtgeschwindigkeit nur Lesen, nicht aber schreiben. Machst du das mittels einer Public Variable hast du die Möglichkeit des Schreibschutzes nicht. |
Re: globale Variablen?
Zitat:
Delphi-Quellcode:
So ist gewährleistet, dass Du immer plausible Werte verwendest.
TBlubb = class
... private FWert: TWert; function GetWert: TWert; procedure SetWert(value: TWert); ... public property Wert: TWert read GetWert write SetWert; ... end; ... function TBlubb.GetWert: TWert; begin Result := FWert; end; procedure TBlubb.SetWert(value: TWert); begin if value <> Quatsch then FWert := value; end; |
Re: globale Variablen?
Aha jetzt habe ich es auch verstanden. Scheint wirklich komfortabler zu sein...
|
Re: globale Variablen?
Habt Ihr eigentlich meinen Beitrag #11 gesehen?
Der Beitrag mir dem vielen Quellcode... |
Re: globale Variablen?
Zitat:
|
Re: globale Variablen?
Zitat:
|
Re: globale Variablen?
Man sollte noch erwähnen, dass dann konsequenterweise jeglicher "FormX."-Code ebenfalls "pfui" ist ;) .
|
Re: globale Variablen?
Zitat:
Ich kann Dir nicht folgen. :? :?: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:28 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