Delphi-Quellcode:
type
RConfig2 = record
private
fKey: String;
fValue: Variant;
function GetAsString: String;
function GetAsInteger: Integer;
public
property Key: String read fKey write fKey;
property Value: Variant write fValue;
property AsString: String read GetAsString;
property AsInteger: Integer read GetAsInteger;
end;
Ich würde im Record die Setter Methoden einfügen, nicht in der Config Klasse. Dann kannst du einfach
...AsInteger := 4711
tippen, anstatt ein Record übergeben zu müssen.
Delphi-Quellcode:
type
TConfig = class(TObject)
private
...
fList: TConfigList;
fList2: TConfigList2;
...
function GetVariantValue(aID: String): RConfig2;
procedure SetVariantValue(aID: string; aValue: Variant);
...
public
constructor create;
...
property Item[aKey: String]: RConfig2 read GetVariantValue write SetVariantValue;
...
end;
Hier ist der Getter ausreichend. Aber wenn schon ein Setter da ist, dann definitiv mit RConfig2 arbeiten nicht mit Variant. Auch wenn ich nichts gegen Variant habe (doch eigentlich schon
), es macht hier einfach keinen Sinn.