Dann muss ich wieder so viel umbauen...
Viel wäre es ja nicht gewesen, sondern nur ein paar Zeilen. Nur leider hatte die Idee das gleiche Problem, wie du es im Moment hast.
Quick and Dirty könntest es so umbauen, dass du den folgenden Aufruf hast:
myConfig.Item['dbconfig'] := myConfig.Item['dbconfig'].SetValue(2312);
Schön ist aber was anders...
Würde dann eher vorschlagen, dass du der TConfig eine SetItemValue(Name: string; Value: Variant) Methode spendierst.
Oder eine ganz andere Alternative wäre es einen Zeiger auf den Record zurückzugeben, also bei GetVariantValue eien PRConfig2. Aber ob das so toll wäre...
Die Methode hatte ich drin, bzw. habe ich noch da nur leider lässt der Compiler es nicht durch.
Delphi-Quellcode:
procedure SetVariantValue(aID: String; aValue: Variant);
...
procedure SetAValue(aValue: Variant);
public
...
property Item[aKey: String]: RConfig2 read GetVariantValue write SetVariantValue;
Der Record
Delphi-Quellcode:
type
RConfig2 = record
private
fKey: String;
fValue: Variant;
function GetAsString: String;
function GetAsInteger: Integer;
procedure SetAValue(aValue: Variant);
public
property Key: String read fKey write fKey;
property Value: Variant read fValue write SetAValue;
property AsString: String read GetAsString;
property AsInteger: Integer read GetAsInteger;
end;
Wo ist der Fehler? Ich bin nur noch am systematischen Probieren, aber ich komme auf keine Lösung - das nervt mich..
Hier scheint meiner Meinung nach das Problem zu sein, das
Item
vom Typ
RConfig2
ist?!