![]() |
Delphi-Version: 5
TObjectDictionary komplett durchlaufen
Hallo Zusammen,
ich möchte gerne durch alle Einträge eines TObjectDictionary durchlaufen und dabei die Keys und die Values abfragen. Mit ExtractPair kann ich eigentlich genau das "Paar"(Kay,Value) abfragen. Doch leider nimmt es ExtractPair wörtlich "Extract" und entfernt mir den Eintrag aus dem Dict. Die Hilfe sagt, es gibt keine Hilfe.
Delphi-Quellcode:
Hat jemand eine Idee?
procedure TfrmMain.SendAllStati;
var UserObject:TUserObject; i:integer; status:String; aPair :TPair<integer,TUserObject>; begin status := 'ALLSTATI'; for i := 0 to UserObjectDict.Count-1 do begin aPair := UserObjectDict.ExtractPair(i); if aPair.Value<>nil then begin status := status + Format(';%d_%d',[aPair.Key, aPair.Value.State]); end; end; Display(Memo3, status); end;{SendAllStati} Gruß Kostas [Edit] Auch wirklich unschön ist dass der Value.Destructor nicht gefeuert wird! Es wird also aus der Liste entfern ohne dass das Object es mittbekommt! |
AW: TObjectDictionary komplett durchlaufen
Ganz einfach:
Delphi-Quellcode:
var
pair: TPair<<integer,TUserObject>; ... for pair in UserObjectDict do begin if aPair.Value<>nil then begin status := status + Format(';%d_%d',[aPair.Key, aPair.Value.State]); end; end; |
AW: TObjectDictionary komplett durchlaufen
So kannst Du das Dictionary durchlaufen:
Delphi-Quellcode:
for lKey in MyDict.Keys do
begin LValue := MyDict[lKey]; //<- value des Pair end; |
AW: TObjectDictionary komplett durchlaufen
Perfekt, genau so gehts.
Besten Dank und eine schöne Zeit. Gruß Kostas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz