Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#3

Re: Nodedarstellung im TTreeView verschieben

  Alt 26. Okt 2009, 23:38
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
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat