Ich arbeite seit langen an einem Programm zur steuerung von Modelleisenbahnen.
Da verwende ich Virtual Stringtree in Delphi 7.
Jetzt habe ich zu Delphi 10.3 gewechselt.
Als erstes war das Problem mit dem Daten Laden. Delphi 10.3 konnte die Daten nicht volständig laden.
Das Problem war String als Datentyp in dem Datenrecord.
pVTNodeData = ^rVTNodeData; // Zeiger auf die Daten-Struktur
rVTNodeData = record // Daten-Struktur Text : String; // Text-Inhalt
geändert in
Text : AnsiString; // Text-Inhalt
Danach würden schon mal die Daten richtig angezeigt.
Seit ich nach Delphi 10.3 gewechselt habe zeigt die Stringtree alle Images im Baum doppelt an.
Habe es mal einer kleinem Projekt versucht und es werden immer 2 x die images angezeigt. Siehe Bild.
Habe ich eine Einstellung im Stringtree vergessen ?
Schau dir mal im OnGetImageIndex
Event den Parameter Kind an. Dort solltest du ggf. noch auf ikOverlay
und ikState
(hoffe ich habe die Namen richtig im Kopf) prüfen. Du solltest nur in ikNormal
und ikSelected
den entsprechenden ImageIndex zurückgeben. Das könnte in dem Fall helfen. Für State und Overlay braucht man eine zusätzliche ImageList bzw. muss eine existierende ImageList an die entsprechenden Properties im Tree binden.