Array-Property, das ist sowas, wie bei TList/TStrings/TStringList ... halt wie beim Array.
Delphi-Quellcode:
property Strings[Index: Integer]: string read GetString write SetStrings;
SL.Strings[index]
SL.Value[Name]
Default-Property, sind jene, welche "implizit" genutzt werden können.
Delphi-Quellcode:
property Strings[Index: Integer]: string read GetString write SetStrings; default;
SL.Strings[index] // direkt
SL[index] // default
dagegen die Default-Value bzw. Default-Property-Value
property Cool: Boolean read GetCool write SetCool default True;
Die
Klasse Instanz neu erstelt, da ist der Wert True ... bzw. eigentlich heißt es, dass "True" nicht in der
DFM gespeichert wird, also nur "False" steht drin.
(stimmen beide Aussagen aber nicht überein, dann hast du ein Problem, beim Laden einer
DFM ... also aufpassen, wenn du Klassen baust)
Delphi-Quellcode:
property StringEx:
string index 123
read GetString
write SetStrings;
SL.StringEx
// Index nur intern, z.B. zur Haldung von Kontroll-Daten und/oder um für mehrere Property nur "einen" Getter/Setter zu nutzen
// aber so fällt bestmmt auf, dass diese beiden "Index" nicht das Gleiche sind
property StringEx[Index2: Integer]:
string index 123
read GetString
write SetStrings;
// der Getter und Setter sieht hier erstmal gleich aus
property A:
string index 1
read GetABC
write SetABC;
property B:
string index 2
read GetABC
write SetABC;
property C:
string index 3
read GetABC
write SetABC;
property X[
Index: Integer]:
string read GetABC
write SetABC;
procedure GetABC(
Index: Integer):
string;
begin
//Assert((Index => 1) and (Index <= 3), 'peng');
case Index of
1: Result := '
Aaa';
2: Result := '
Bbb';
3: Result := '
Ccc';
else raise Exception.Create('
peng');
end;
end;