Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: Klassen Methoden die private stehen

  Alt 28. Feb 2014, 15:59
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 Fname write Fname;
propgs => property name: type read Getname write Setname;
propro => property name: type read getter;
proprof => property name: type read Fname;

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
$2B or not $2B
  Mit Zitat antworten Zitat