Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - TreeNodes in TList
SteheAufDerLeitung - Do 12.07.07 08:10
Titel: TreeNodes in TList
G'Morgen!!
Ich möchte die selektierten Nodes einer TreeView in eine TList speichern, damit ich sie beim erneuten Aufruf wieder selektieren lasse..
In einer TList werden ja pointer gespeichert, richtig?
Von daher dachte ich dies würde funzen:
Delphi-Quelltext
1: 2: 3:
| for i := 0 to TreeView.Items.Count-1 do if Treeview.Items[i].selected then TList.add(pointer(TreeView.Items[i])); |
Jedoch erscheint beim Ausführen:
Exception der Klasse EAccessViolation, Zugriffsverletzung bei Adresse... Lesen von Adresse xyz..
Was mach ich denn falsch?
Euch allen erstmal nen guten Start in den Tag! ;-) Lecker Kaffee!! :-D
wwwdirk - Do 12.07.07 09:28
Hast du ne TList-Instanz erstellt?
Martin1966 - Do 12.07.07 11:20
Titel: Re: TreeNodes in TList
Wie wwwdirk schon geschrieben hat: TList ist eine Klasse. Du benötigst aber eine Instanz einer Klasse. So in etwa:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| var SelItems: TList; begin SelItems := TList.Create; try for i := 0 to TreeView.Items.Count-1 do if Treeview.Items[i].selected then SelItems.add(TreeView.Items[i]);
finally SelItems.Free; end; end; |
Lg, Martin
SteheAufDerLeitung - Do 12.07.07 12:09
Ahh!! daran hab ich noch nicht gedacht, werd es bei Gelegenheit mal ausprobieren.. Vielen Dank schon mal!
Yogu - Sa 14.07.07 12:21
Das mit dem Pointer-Zeugs kannst du meines Wissens weglassen.
Ich füge immer so neue Einträge in eine TList hinzu:
Beim Zugreifen musst du entweder
TKlasse(List[Index]) davorhängen, oder mit
Item := List[Index]; Item.Selected ... erst eine Variable setzen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!