Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Variante Records, Strings und 32 bzw. 64 Bit

  Alt 27. Nov 2013, 10:37
Das sollte bei "Property" in der OH stehen und das gibt es schon sehr sehr lange. (in den Objekten und Interfaces)
Nur bei Records wurde es erst später eingeführt. Genauso, wie es Class- und Record-Helper erst seit einer Weile gibt.

Index ist einfach ein Integer-Parameter, den man an den Getter und Setter weitergeben kann.

Delphi-Quellcode:
[class] function DerGetter([ArrayParameter: ParamTyp; ...] [IndexParameter: Integer]): ResultTyp; [static;] [overload;] [virtual|dynamic; [abstract;]] [override;]
[class] procedure DerSetter([ArrayParameter: ParamTyp; ...] [IndexParameter: Integer; ] Value: ResultTyp); [static;] [overload;] [virtual|dynamic; [abstract;]] [override;]

// Array-Property
[class] property DerName[ArrayParameter: ParamTyp; ...]: ResultTyp [index IndexParameter] [read DerGetter] [write DerSetter] [default];

// normales Propery
[class] property DerName: ResultTyp [index IndexParameter] [read DerGetter] [write DerSetter] [default DerStandardwert];

// [...] = das darin Eingeschlossene ist optional
// außer um den "ArrayParameter" drumrum, da sind wirklich die Zeichen [ und ] gemeint
Nur beim "default" muß man aufpassen, da es bei Array-Property das Property als Standard-Property deklariert .... siehe TStrings (SL.Strings[123] = SL[123] )
und bei normalen Properties die Serialisierung steuert ... also den Wert, welchen z.B. die VCL nicht in der DFM speichert.

Virtual, dynamic, abstract, override und natürlich auch das protected nicht bei Records, da diese keine Vererbung besitzen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (27. Nov 2013 um 11:31 Uhr)
  Mit Zitat antworten Zitat