In TTreeView scrollen
-
Hallo !
Wie kann man denn im TTreeView den Scroller bewegen.Ich habe zwei TTreeViews nebeneinander zu liegen und möchte mich gern synchron hindurchbewegen können. Das heißt, wenn ich im linken TTreeView scrolle, soll der Rechte diese Bewegung mitmachen und umgekehrt.
Ich habe bisher lediglich ScrollBy() gefunden, aber damit kann ich hier ja nichts anfangen.
Vielen Dank
-
Hi,
guck mal in der Hilfe unter TTreeView::TopItem nach.
Viele Grüße,
Christian
-
Danke für den Tip. Habe das Ganze wie folgt gelöst:
void __fastcall TMainKonfigForm::SyncTreeViews(TTreeNode *ALastTop, TTreeView* AQuellTreeView, TTreeView* ADestTreeView) { // Focusabfrage, da sich die Listviews sonst ständig gegenseitig aktualisieren wollen if (AQuellTreeView->Focused()) { if (ALastTop != AQuellTreeView->TopItem) { ALastTop = AQuellTreeView->TopItem; int AbsIndex = ALastTop->AbsoluteIndex; ADestTreeView->Items->BeginUpdate(); if (AbsIndex < ADestTreeView->Items->Count) { TTreeNode* NewTop = ADestTreeView->Items->Item[AbsIndex]; if (NewTop != NULL) { ADestTreeView->TopItem = NewTop; } } ADestTreeView->Items->EndUpdate(); } } }Das einzige Problem was noch auftritt ist folgendes. Wenn ich lediglich den Scroller betätige, erhält das entsprechende Listview nicht automatisch den Focus. Damit funktioniert dann auch die Synchronisierung nicht mehr.