Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   TVirtualStringTree AddChild access violation (https://www.delphipraxis.net/202698-tvirtualstringtree-addchild-access-violation.html)

EricMeyer 9. Dez 2019 10:20

AW: TVirtualStringTree AddChild access violation
 
Delphi-Quellcode:
  TreeView2.NodeDataSize := SizeOf(PTreeData);
natürlich muss hier TTreeData rein. Sorry ich hatte rumgespielt mit diesem Punkt, um zu schauen, ob es daran liegt und es dann falsch zurück verbessert.

Und dank des Tipps hier, habe ich herausgefunden woran es lag. Die Zeile
Delphi-Quellcode:
  TreeView2.NodeDataSize := SizeOf(TTreeData);
habe ich noch vor das Beginupdate des Treeviews gesetzt und dann lief es. :)

Und jetzt macht auch alles Sinn. Es ist abgeschmiert, als ich zum Parent zurückgekommen bin. Der hatte seine Daten verloren. Ich finde es immer noch etwas seltsam, dass der Parent in der ersten Iteration funktioniert hat, dann aber später, als er von tieferen Rekursionen zurück zur obersten gekommen ist, nicht mehr. Es erklärt auch, warum der Node assigned war, nur eben die Daten nicht. Dennoch denke ich mir, eigentlich müsste er doch dann beim Zugriff auf die Daten und nicht beim addchildnode abschmieren. Weil der ursprüngliche Speicherplatz des Nodes doch mindestens ausreichen müsste, damit der Node selbst erkannt wird. Aber ich kenne mich mit Pointern nicht genug aus.

Trotzdem vielen Dank!

generic 9. Dez 2019 14:16

AW: TVirtualStringTree AddChild access violation
 
Delphi-Quellcode:
 TreeView2.NodeDataSize := SizeOf(TTreeData);
Das solltest du nach der Formular-Erzeugung einmalig machen.
z.B. im Form.OnCreate
Am besten bevor du irgend etwas anderes im Baum anstellst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:34 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz