Discussion:
TTreeview Scroll Position setzen
(zu alt für eine Antwort)
Sebastian Kraft
2004-04-13 10:58:03 UTC
Permalink
Hallo,

Wie kann ich von einem TreeView die Scrollposition auslesen und nach einem
aktualisiern, bzw. neuanlegen der ganzen Nodes wieder den selben
Ausschnitt zu sehen?

Und gibt es irgendwo im Netz eine Seite, wo sämtliche standardmäßig
vorhandenen Delphiklassen dokumentiert sind? Eben TTreeView, Tedit usw...

BTW Ich benutz Lazarus, sollte aber größtenteils übertragbar sein.

Viele grüße
Sebastian
Achim Kalwa
2004-04-13 14:05:37 UTC
Permalink
Hallo,
Post by Sebastian Kraft
Wie kann ich von einem TreeView die Scrollposition auslesen und nach
einem aktualisiern, bzw. neuanlegen der ganzen Nodes wieder den selben
Ausschnitt zu sehen?
Hmm, nicht ganz einfach.
Ich wollte zuerst vorschlagen, du solltest Dir TreeView.TopItem merken.
Aber das ist ja eine Referenz auf den entsprechenden Node, und nach einem
aktualisieren oder neuanlegen könnte dieser nicht mehr existent sein.
Post by Sebastian Kraft
Und gibt es irgendwo im Netz eine Seite, wo sämtliche standardmäßig
vorhandenen Delphiklassen dokumentiert sind? Eben TTreeView, Tedit usw...
Mir ist keine solche Webseite bekannt. Man kann (konnte?) bei Borland
Trial- oder Personal-Versionen von D7 herunterladen. Ob man die
Hilfe-Datei noch benutzen darf, wenn der Testzeitraum des Produktes
abgelaufen ist, möchte ich nicht weiter diskutieren ;-)
Post by Sebastian Kraft
BTW Ich benutz Lazarus, sollte aber größtenteils übertragbar sein.
Bei Lazarus hast Du den großen Vorteil, die Quelltexte der Komponenten
gleich dabei zu haben. TTreeView.TopItem gibt es dort auch.


HTH
Achim
Sebastian Kraft
2004-04-13 17:54:05 UTC
Permalink
Post by Achim Kalwa
Hmm, nicht ganz einfach.
Ich wollte zuerst vorschlagen, du solltest Dir TreeView.TopItem merken.
Aber das ist ja eine Referenz auf den entsprechenden Node, und nach einem
aktualisieren oder neuanlegen könnte dieser nicht mehr existent sein.
Momentan mache ich das so ähnlich. Die Zahl der Nodes bleibt meist
gleich. und oft wird auch nur der angezeigte Text geändert. Ab und zu
kommt dann halt eine Schutzverletzung...
Wie gesagt, recht selten... Ist halt nicht umbedingt guter Stil... aber
andererseits bauen manche Leute mit dieser Einstellung ganze
betriebssysteme ;-)

Kann man nicht irgednwie die Position der Scrollleiste auslese.
getScrollPosition oda so ähnlich und diese dann mit Setxxx wieder setzen?

Es geht mir nur um die ungefähre Position im Treeview, so dass man halt
nicht nach jeder Änderung den ganzen Baum druchscrollen muss...

Gruß
sebastian
Michael Winter
2004-04-13 19:55:45 UTC
Permalink
Post by Sebastian Kraft
Kann man nicht irgednwie die Position der Scrollleiste auslese.
getScrollPosition oda so ähnlich und diese dann mit Setxxx wieder setzen?
Nahe dran. GetScrollPos.

Allerdings setzt SetScrollPos wirklich nur die Position in der Scrollbar,
ohne den Fensterinhalt zu rollen. An dieser Stelle könnte dann WM_VSCROLL
helfen.

-Michael

Loading...