Hi Sentinal,
du kannst natürlich ein zweidimensionales Array (möglichst dynamisch) oder auch eine Stringliste verwenden.
Bei der Stringliste hast du natürlich das Problem, dass dein zweiter zuspeichernder Wert ein Typ TObject sein muß. Das kannst du aber einfach mit einer Zeigervariable lösen.
Üblicherweise schreibe ich mir für sowas eine kleine neue Klasse abgeleitet von TStringList um die Umwandlung in deinen Value-Wert nicht in der "Hauptanwendung" machen zu müssen.
Das sieht dann ansatzweise so aus:
Delphi-Quellcode:
type
TKeyValueList = class(TStringList)
public
procedure AddKeyValue(Key, Value: String);
function GetValue(Key : String) : String;
end;
procedure TKeyValueList.AddKeyValue(Key, Value:String);
var
PValue : PChar;
begin
// Value in PChar wandeln
AddObjects(Key, TObject(PValue));
end;
function TKeyValueList .GetValue(Key, String):String;
var
PValue : PChar;
Index : Integer;
begin
Result := '';
try
IF Find(Key, Index) then begin
PValue := PChar(Object[Index]);
// PValue in String und Result zuweisen
end;
except end;
end;
So kannst du dann den Rückgabewert von GetValue zum Key als deinen Value verarbeiten.
Gruß oki