TreeView1.Selected.DisplayRect(True).Left liefert schonmal die Linke Position des Textes,
Allerdings wird hier das horizontale Scolling ignoriert (das Vertikale ist in den werten enthalten),
sonst könnte man z.B. in TreeView1Change ganz einfach per TreeView1.ScrollBy(Abstand - xxx.Left, 0); die Position anpassen.
Leider stimmt halt die Linke/Rechte Position nicht ganz mit den ScrollPositionen überein,
also müßte man erstmal irgendwie die aktuelle Scrollposition rausfinden.
Weiß zufällig wer, wie man bei einem TreeView due horizontale Scrollposition ausliest?
'ne einfache Lösung wäre erstmal
Delphi-Quellcode:
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
if Assigned(TreeView1.Selected) then
TreeView1.Selected.MakeVisible;
end;
Hier gibt es zwar keine Feste Position, aber der aktuelle Knoten wird in den sichtbaren Bereich reinverschoben.
[edit]
komisch, jetzt liefert DisplayRect.Left doch die richtige Prosition