Schade ist auch, daß es bei Strings keinen DefaultWert gibt.
property Zitronenfarbe: string read FZitronenfarbe write SetZitronenfarbe default 'gelb';
Bei der Komponentenentwicklung gibt man damit an, wann ein Published-Porperty in der
DFM gespeichert wird. (wenn Wert = Defaultwert, dann nicht)
Und mehr Arbeit hat man eigentlich auch nicht, bei der Verwendung von Properties.
Felder (Komponenten-Variablen) sollten besser nie direkt, sondern praktisch immer nur über ein Property, von außen zugänglich sein.
Delphi-Quellcode:
// geschrieben
public
property Zitronenfarbe: string;
// nach Klassenvervolständigung (Strg+Shift+C)
private
FZitronenfarbe: string;
procedure SetZitronenfarbe(const Value: string);
public
property Zitronenfarbe: string read FZitronenfarbe write SetZitronenfarbe;
public
property Zitronenfarbe: string read FZitronenfarbe write FZitronenfarbe;
private
FZitronenfarbe: string;
public
property Zitronenfarbe: string read FZitronenfarbe write FZitronenfarbe;
// nur hier gibt es ein Problem, denn die Klassenvervollständigung denkt sich "Ein Getter kann nicht schaden" (selbst wenn man wirklich nur ein Write)
public
property Zitronenfarbe: string write FZitronenfarbe;
private
FZitronenfarbe: string;
public
property Zitronenfarbe: string write FZitronenfarbe read FZitronenfarbe;
Es gibt auch Code-Vorlagen, welche ebenfalls die Variablen, Setter und Getter erstellen.
- einfach das CodeWort schreiben und mit Leertaste abschließen
- nur irgendwie geht das beim "prop" nicht, mit der Leertaste (XE3)
- aber wenn man sich die Codevervollständigung (Strg+Leertaste) vor Wortbeginn oder mitten drin anzeigen lässt, dann geht es und man sieht auch, was es sonst noch gibt
prop => property
name:
type read
getter write
setter;
propf => property
name:
type read F
name write F
name;
propgs => property
name:
type read Get
name write Set
name;
propro => property
name:
type read
getter;
proprof => property
name:
type read F
name;
Nur noch geünschten "Name" [enter] "Typ" [enter] eingeben und fertig. (bei anders-namentlichem Getter und Setter diese natürlich auch noch benennen)
weitere Vorlagen siehe MainMenu > Ansicht > Vorlagen