Delphi - Get-und Set-Scrollbar Position einer ListView

Es mag wie eine dumme & einfache Frage, und doch, ich habe nicht in der Lage eine befriedigende Antwort darauf finden. Im Grunde genommen habe ich eine TListview (style = vsReport) mit Daten. Manchmal meine ich, ihn zu aktualisieren, und deshalb habe ich auf deaktivieren Sie das listview-Steuerelement und füllen es wieder mit den aktualisierten Daten.

Allerdings, wenn ich tun, dass die scrollbar-position wird zurückgesetzt auf 0. Ich möchte in der Lage sein, um die scrollbar-position, bevor Sie die Lichtung, und legen Sie es zurück zu dem, was es vorher war. Wenn die aktualisierten Daten, hat genau die gleiche Menge an Zeilen wie die alten Daten, ich brauche Sie die Bildlaufleiste, um an der exakt gleichen position wie zuvor; wenn nicht, brauche ich nur mehr-oder-weniger an der gleichen Stelle wie zuvor.

Scheint einfach, richtig? Doch, alle die ich gefunden habe, sind hacks oder tweaks mit TopItem und MakeVisible. Gibt es eine entsprechende Methode, das zu tun?

Dank!

Warum deaktivieren Sie das ListView-Steuerelement in den ersten Platz? Sie können aktualisieren Sie die vorhandenen Elemente statt, was die Auswahl (und Scrollbalken) allein.
Es schien mir logischer, da die aktualisierten Daten, möglicherweise mehr oder weniger Zeilen als die alten Daten. Bin ich falsch?
Was ist, wenn die Anzahl der Elemente in der Liste steigt? Was ist, wenn das alte Element ist "stillgelegt" (dh, nicht in die "aktualisierte" Liste)?
Ihre Frage war "Wenn die aktualisierten Daten, hat genau die gleiche Menge an Zeilen wie die "alten Daten". Wenn es weniger Zeilen sind, aktualisieren Sie einfach die, die Sie brauchen, und löschen Sie den rest (nacheinander). Wenn es "ausgemusterten" Gegenständen, ersetzen Sie einfach den aktuellen Inhalt mit dem neuen Inhalt, den es sein sollte, anstatt jetzt. Clearing/Neuerstellung der Elemente der Liste ist ein teurer Vorgang.
Ich habe nie gesagt, "Artikel löschen, halten Sie die Bildlaufleiste an der gleichen Stelle" irgendwo in dem, was ich schrieb. In der Tat, riet ich das Gegenteil (nicht das löschen von Elementen, wenn Sie nicht haben, dies zu tun). Bitte Lesen, was ich schrieb wieder.

InformationsquelleAutor Allain McCain | 2013-12-29

Schreibe einen Kommentar