Hallo Leute,
ich bin bei einem Projekt gerade dabei bestimmte Werte (genauer gesagt: Fenstertitel, X-&Y-Koordinaten sowie einen zugehörigen String) in eine Art Array zu packen.
Um mal PHP als triviale Analogie herzunehmen:
PHP-Quellcode:
$hash['Foo'][12][27] = 'Bar';
$hash['Hello'][18][59] = 'World';
Ich denke das System ist naheliegend.
Mein Problem: wie stelle ich das am geschicktesten mit Delphi dar?
Assoziative Arrays im klassischen Sinne gibt es ja nicht. Nehme ich aber ein TDictionary, sieht das am Ende gruselig aus:
var hash: TDictionary<String, TDictionary<Integer, TDictionary<Integer, String>>>;
Das kann ja nun auch nicht des Rätsels Lösung sein. Hoffe ich.
Nun ist die Frage: wie kann ich am einfachsten oder am elegantesten einem Key über (Fenstertitel, X, Y) den Wert (String) zuordnen?
Wenn alles nichts hilft habe ich schon über sowas nachgedacht:
Delphi-Quellcode:
hash := TDictionary<String, String>.Create;
hash.Add('Foo_12_27', 'Bar');
Ist zwar nicht das Eleganteste, aber funktioniert immerhin recht einfach. Schließlich sollen die drei Parameter ja nur einen Key bilden. Alles in einem Array (oder etwas adäquatem) zu speichern, würde zu einem späteren Zeitpunkt die Iteration über die einzelnen Parameter vereinfachen (z.B. einen Dump von nur einem bestimmten Fenster im Hash erstellen). Aber notfalls könnte ich darauf wohl verzichten. Die meisten Zugriffe erfolgen einfach nach dem Schema Key->Value.
Vielen Dank schon mal für eure Ideen und Vorschläge!
mfg, mh166