Thema: Delphi VirtualStringTreeview

Einzelnen Beitrag anzeigen

michaelg

Registriert seit: 20. Apr 2008
87 Beiträge
 
#6

Re: VirtualStringTreview

  Alt 23. Jun 2008, 03:25
Mein Code war sicher nicht genial, sondern eher überflüssig, denn sowohl bei InitNode als auch bei OnMeasureItem ist kein Column als Parameter im Aufruf. Deshalb gehe ich davon aus, daß es um die komplette Zeile (Höhe des Nodes) geht, also könntest Du Dir das mit den Columns sparen. Bist Du wirklich sicher, daß man das für eine Col machen kann?

Mir ist aufgefallen, daß beim Setzen der Nodeheight bei OnMeasureItem "korrekter" gezeichnet wird. Im Fall von InitNode werden die Nodes alle auf die gleiche "höchste" Höhe gesetzt, das passiert bei OnMeasureItem nicht. Ich würde deshalb bei InitNode nur das Multiline setzen und bei OnMeasureItem die Höhe. Es gibt dazu auch ne Funktion ComputeNodeHeight, die könnte hilfreich sein, wenn Du tatsächlich variable Höhen für jedes Node haben willst. Damit die Höhe aber nur einmal berechnet werden muß, solange sich der Inhalt nicht ändert, würde ich mir die Höhe ins pTreeData-Record einbauen und wenn was drinsteht, nicht nochmal berechnen.

Ich hab noch das Property TreeOptions.MiscOptions.toVariableNodeHeight entdeckt, hat aber bisher keine Auswirkung bei mir gehabt, ob man das setzt oder nicht.

Zu Deiner anderen Frage:
Du willst sozusagen Column[0] als Überschrift haben und dann Column[1] darunter mit Multiline, und das Ganze innerhalb eines Knotens. Das kannst Du nur selber ins Canvas zeichnen glaube ich. Ich hab auch in den tausend Beispielprogrammen für den Stringtree nichts gefunden (außer in Advanced.dpr, aber da fehlt genau das im Quelltext, wonach wir suchen).
  Mit Zitat antworten Zitat