Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   TVirtualStringTree Scrollbalken unterschiedliche Node Höhe (https://www.delphipraxis.net/182902-tvirtualstringtree-scrollbalken-unterschiedliche-node-hoehe.html)

stalkingwolf 25. Nov 2014 09:36

TVirtualStringTree Scrollbalken unterschiedliche Node Höhe
 
Hallo zusammen,

ich nutze ein TVirtualStringTree und die Node im Stringtree haben unterschiedliche Höhen.
Leider wird dabei der Vertikale Scrollbalken nicht korrekt dargestellt. Er wird entweder gar nicht angezeigt oder zeigt den falschen Rest an.
Wenn er teilweise angezeigt wird und ich dann scrolle, wird er automatisch angepasst.
Wenn er erst gar nicht angezeigt wird, dann kann ich in dem StringTree nicht scrollen.
Sobald ich das Programm vergrößere/verkleinere, wird der Scrollbalken auch automatisch korrekt angepasst.

Im Netz habe ich schon etwas gelesen, aber die Lösungen haben alle nichts gebracht.

Jemand eine Idee oder das Problem auch schon einmal gehabt?
Es sieht ja so aus, als würde er den Scrollbalken nach füllen mit der DefaultNodeHeight berechnen und nicht mit der tatsächlichen NodeHeight, welche ich bei MeasureItem ihm neu übergebe.

sh17 25. Nov 2014 10:37

AW: TVirtualStringTree Scrollbalken unterschiedliche Node Höhe
 
Hast Du einen Baum? Also mit Verschachtelung? und sind alle Knoten am Anfang expandiert? ggf. sind die noch nicht sichtbaren Knoten noch nicht initialisiert und vst kennt sie demzufolge noch nicht.

stalkingwolf 25. Nov 2014 10:47

AW: TVirtualStringTree Scrollbalken unterschiedliche Node Höhe
 
Ne ist kein Baum, sondern nur Eintrag unter Eintrag.

nuclearping 25. Nov 2014 19:39

AW: TVirtualStringTree Scrollbalken unterschiedliche Node Höhe
 
Wie / wo setzt du die NodeHeight?

stalkingwolf 27. Nov 2014 14:41

AW: TVirtualStringTree Scrollbalken unterschiedliche Node Höhe
 
Bei MeasureItem

Delphi-Quellcode:
procedure Tfmain.vtMeasureItem(Sender: TBaseVirtualTree;
  TargetCanvas: TCanvas; Node: PVirtualNode; var NodeHeight: Integer);
begin
    if sender.tag = 1 then NodeHeight := vt1.ComputeNodeHeight(TargetCanvas, Node, 2)+vt1.DefaultNodeHeight;
    if sender.tag = 2 then NodeHeight := vt2.ComputeNodeHeight(TargetCanvas, Node, 2)+vt2.DefaultNodeHeight;
end;

nuclearping 27. Nov 2014 16:22

AW: TVirtualStringTree Scrollbalken unterschiedliche Node Höhe
 
Versuch mal die NodeHeight in OnInitNode zu setzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz