Hmm, TIntegerDictionary von
alzaimar klingt doch nach dem, was ich bräuchte. Ich mein mich auch dran erinnern zu können, dass ich schonmal darüber gestolpert bin, es kam mir zumindest bekannt vor. Aber damals habe ich das noch nicht so ganz gerallt..
Mal zur praktischen Umsetzung und der Verwendung von Pointern (Gott, is das alles lange her..
) folgendes Listing:
Delphi-Quellcode:
var
Dict: TIntegerDictionary;
implementation
{... Create, Dict initialisieren, etc ...}
procedure AddNode(Node: TORPNode);
begin
Dict.Add(Node.ID, @Node);
end;
function ReadNode(ID: Cardinal): TORPNode;
begin
Dict.Find(ID, Result^);
end;
Ist jetzt nur ohne Test grob zusammengehackt. Wenn ich jetzt einen Eintrag lösche, was passiert dann mit den Daten, die hinter dem Pointer liegen? Muss ich mich selbst darum kümmern? Sollte ich denn weiter auf der Schiene fahren, alles in Objekte zu fassen, oder sollte ich doch lieber Records verwenden? Fragen über Fragen...