In einem Delphi VCL-Projekt habe ich eine einfache TVirtualStringTree
mit zwei Spalten erstellt. Die erste Spalte enthält einen Text, der die Name
der dargestellten Daten identifiziert. Der Datensatz enthält auch ein Statusfeld. Die zweite Spalte soll den Status des Datensatzes mit einem Bild (16x16 Pixel) ohne Text darstellen.Wie wird ein Symbol oder Bild in einer Spalte von TVirtualStringTree angezeigt?
Ich habe Demos gesucht, aber nicht den vollständigen Prozess dafür beherrscht, wie VTV einen Knoten anzeigt, und war nicht erfolgreich, ein Symbol zu erhalten, um im Knoten einer bestimmten Spalte anzuzeigen.
So habe ich drei miteinander verbundene Fragen:
Ich sehe, wie der Text in dem
OnGetText
Ereignisse zugeordnet ist, aber wo soll ich zuweisen oder das Bild ändern, um den aktuellen Status in meinem Rekord zu reflektieren?Wie bekomme ich das Bild tatsächlich in der Spalte angezeigt?
Bin ich in der Größe für die Bilder begrenzt, oder können sie größer als Symbole sein? Wenn ja, muss ich die Einstellungen ändern, um die Höhe jeder Zeile anzupassen (wenn möglich)?
Ich war vielleicht nicht klar in meiner Frage. Ich möchte, dass der Knoten in einer bestimmten Spalte auf Knotenebene angezeigt wird. Ich habe die Frage bearbeitet, um das zu reflektieren. – Ashlar
Hinzugefügt Programmcode – Ashlar
Ich habe versucht, die if kind ... Zeile hinzufügen und immer noch nicht die Symbole zu sehen. Ich habe auch eine showmessage am Anfang von GetimageIndex platziert und festgestellt, dass es nicht während der Erstellung der Knoten aufgerufen wird, nur wenn ich die Maus in den Knoten bewegen, sobald das Programm läuft. – Ashlar