Gesetzt den Fall, ich benötige einige Variablen global im ganzen Programm und richte mir dafür eine Klasse ein, die von allen anderen Units, die diese Variablen benötigen, verwendet wird. Wenn ich nun z.B. unter Public eine Variable namens AppendModus : Boolean; deklariere, hat doch jede
Unit, die eine Instanz dieser Klasse erzeugt, auch eine andere Instanz dieser Variablen. Nun habe ich kürzlich irgendwo in den Weiten des Forums gelesen, daß man zu diesem Zweck Klassenvariablen deklariert:
Delphi-Quellcode:
TYPE
TGlobalix = CLASS
PRIVATE { Private-Deklarationen }
PUBLIC { Public-Deklarationen }
Class Var FehlerMeldung,
DB_Pfad,
Pfad_Main,
Modustext : String;
Class Var StartModus,
AppendModus,
EditModus : Boolean;
END;
Dazu hab ich mehrere Fragen:
1. Verfügt jede Instanz dieser Klasse über dieselben Werte der in Class Var deklarierten Variablen?
2. Muß ich vor jeder Deklaration Class Var schreiben oder sind alle Variablen, die ich nach der Anweisung Class Var hinschreibe, Klassenvariablen?
3. Sollte man hier besser mit Properties arbeiten und dann nur über die Setter- und Getter-Methoden setzen und abfragen?
Ich habe bereits damit experimentiert und z.B. den AppendModus von FormMain aus auf True gesetzt, dann vom Datenmodul aus abgefragt und das korrekte Resultat erhalten. Bin mir allerdings nicht sicher, ob man sich darauf verlassen kann ...