Home » Tutorials » Third-Party-Komponenten » VirtualTreeView

VirtualTreeView

Nodes beschriften

Bei der normalen TreeView-Komponente war es einfach: Es gab direkt eine Routine (AddText), womit man die Nodes sofort beim Hinzufügen beschriften konnte. So einfach ist es beim VirtualTree nicht. Aber dafür geht das Hinzufügen viel schneller.

Dieses Kapitel basiert größtenteils aus dem vorherigen Kapitel. Dem Node wird ebenfalls ein Record hinzugefügt. Die Variable FCaption des Records benutzen wir für die Beschriftung.

Zunächst muss vor die FOR-Schleife und hinter die FOR-Schleife ein VST.BeginUpdate bzw. ein VST.EndUpdate gesetzt werden. Damit wird gekennzeichnet, dass jetzt Änderungen an dem Baum vorgenommen werden und Windows unterdrückt das Neu-Zeichnen.

Das Ereignis OnGetText

Dieses Ereignis wird aufgerufen, wenn ein Node neu gezeichnet wird. Dort kann man dann auch die Caption setzen (per Referenzparameter CellText).

In unserem Beispiel würde dies so aussehen:

procedure TForm1.VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
 Column: Integer; TextType: TVSTTextType; var CellText: WideString);
var
  Data: PTreeData;
begin
  Data := VST.GetNodeData(Node);

CellText := Data^.FCaption;
end;

Hinweis: In älteren Versionen trug der Parameter CellText noch den Namen Text.

Als Beschriftung hat dann jeder Node den Wert, welcher in der Variale FCaption seines Records steht (dort sollte etwas wie: Node-Nummer: xxx stehen). Sollten dem Node keine Daten zugewiesen sein, kommt es zum Crash.

In diesem Ereignis sollten keine großartigen Berechnungen stattfinden. Dort sollte nur eine Abfrage der eigenen Daten erfolgen.

Hier kannst Du dir ein Beispielprogramm der vergangenen Kapitel downloaden.