Einzelnen Beitrag anzeigen

Dale

Registriert seit: 7. Apr 2006
Ort: Alsdorf
42 Beiträge
 
Delphi 2006 Professional
 
#5

Re: VirtualTreeView: Bestimmten Knoten finden

  Alt 23. Jun 2006, 10:51
Zitat:
Achja, es wird etwas komplizierter: Kann man sich den Baum vorher sortieren lassen? Alle meine Knoten haben ein Datum und ich suche den Knoten mit dem Ziel-Inhalt des jüngsten Datums. Ich schätze aber, die Indizes sind so wie sie erstellt wurden. Also werd ich da wohl alle Knoten durchlaufen müssen, das Datum vergleichen und den jüngsten Knoten merken. Dürfte ja auch nicht so schwer sein.
Das Sortieren im VirtualTreeView kann man mit dem Event "OnCompareNodes" umsetzen:

Delphi-Quellcode:
PROCEDURE TForm.VirtualTreeViewCompareNodes(
            Sender: TBaseVirtualTree;
            Node1, Node2: PVirtualNode;
            Column: TColumnIndex;
            VAR Result: Integer
          );

  VAR lData1, lData2 : PNodeData;

BEGIN

  // Knotendaten beider Knoten ermitteln
  lData1 := Sender.GetNodeData(Node1);
  lData2 := Sender.GetNodeData(Node2);

  // falls die Daten gültig sind ...
  IF (Assigned(lData1) AND Assigned(lData2)) THEN
     Result := lData1.Datum - lData2.Datum;

END;
wobei ich deine Datenstruktur für das Datum natürlich nicht kenne.
Wenn "Result" < 0 ist, dann kommt Knoten1 zuerst, wenn "Result" > 0 ist, dann kommt Knoten2 zuerst.

Gruß Dale
  Mit Zitat antworten Zitat