Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#14

AW: VirtualSourceTree selektierte Nodes löschen?

  Alt 19. Jun 2017, 15:10
Wie oben geschrieben gehe ich davon aus, dass das VST das jetzt übernimmt, da die ObjectList ja die Daten nicht mehr erbt.
Zumindest früher hat der VST das definitiv nicht von alleine gemacht.

IndexOf ist nebenbei bemerkt keine sehr schnelle Operation und kann bei extrem vielen Nodes deine Performance schon ziemlich verschlechtern. Hat es irgendeinen Grund, warum du die Objekte überhaupt in einer TObjectList ablegst? Ich persönlich gehe immer so vor, dass ich beim Einfügen einer Node mein Datenobjekt/Datenrecord mit Create erstelle und zuweise. Im OnFreeNode hole ich mir dann mit GetNodeData den direkten Zeiger auf das Objekt und gebe es dort entsprechend mit Free wieder frei.

Oft bietet es sich sogar an mit Records zu arbeiten. Dort musst du zu Begin einmal NodeDataSize := SizeOf(TDataRecord) setzen. In diesem Falle verwaltet der VST den Speicher tatsächlich vollkommen von alleine. Lediglich ein Finalize im OnFreeNode ist teilweise erforderlich (wenn dein Records Strings, Interfaces oder andere managed types enthält).
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat