Array-Property gingen in D7, aber Einiges davon funktioniert oftmals nur, wenn es
auch als Default deklariert ist, sonst nicht.
Darum ist es in der StringList auch so
Delphi-Quellcode:
property Value[Name: String]: String ...
property ValueByIndex[Index: Integer]: String ...
weil es so nicht ging
Delphi-Quellcode:
property Value[Name: String]: String ...
property Value[Index: Integer]: String ...
seit den class-operators hatte ich mir dann so beholfen
Delphi-Quellcode:
type
TIndexName = record
Index: Integer;
Name: string;
class operator Implicit(Value: Integer): TIndexName;
class operator Implicit(Value: String): TIndexName;
end;
property Value[Name: TIndexName]: String ...; default;
ja, hier wäre auch Variant möglich , aber alles da oben stellt sicher, dass "nur" Integer oder String rein geht
(Float, Boolean und Anderes wird direkt vom Compiler bemängelt)
property Value[Name: Variant]: String ...; default;
um sowas machen zu können
Delphi-Quellcode:
xyz.Value[123]
xyz.Value['abc']
xyz[123]
xyz['abc']