![]() |
[D7]Virtual ListView Einträge hinzufügen
Hi,
ich habe eine Virtual ListView, alles klappt wunderbar. Nur wenn ich einen Eintrag hinzufüge, dann wird die Liste wieder an den Anfang gescrollt. Das würde ich gern verhindern, was ich mache ist folgedes. Im OnCreate Teil des Forms wird ein Dynamisches Array mit den Datensätzen erstellt, dann wird mit ltvList.Items.Count die Anzahl der Einträge gesetzt und im OnData Ereignis das ListView gefüllt. Klappt alles ... Wenn ich jetzt einen Einträge im Array einfüge, es neu Sortiere, und dann den neu hinzugefügten Eintrag anzeigen lassen will. Setze ich erneut die Anzahl ltvList.Items.Count := ltvList.Items.Count+1 Jetzt wird aber die Liste wieder an den Anfang gescrollt, der Scrollbalken soll aber dort stehen bleiben wo er stand, z.B. in der Mitte der Liste. Wie ist das zulösen ? Jemand vorschläge ... mfg TUX |
Re: [D7]Virtual ListView Einträge hinzufügen
Hallo TUX,
das von dir beschriebene Verhalten wirst du in meinem ![]() Grüße vom marabu |
Re: [D7]Virtual ListView Einträge hinzufügen
Hi Marabu,
sorry aber dein Programm macht genau das was meines auch macht. Ich habe in deinem Programm eine Datei geladen, in die Mitte der Liste gescrollt, dann habe ich rechts klick -> hinzufügen ausgeführt und einen neuen Eintrag hinzugefügt. Zack der Scrollbalken war wieder ganz oben und der allererste Eintrag der Liste ist zu sehen. Das habe ich gemeint mit meiner Problembeschreibung und dafür habe ich keine Lösung bisher wie der Ausschnitt der vor dem hinzufügen eines Eintrags sichtbar ist, auch sichtbar bleibt und dieser Ausschnitt sich nicht verändert. Vielleicht ist das was ich will, auch gar nicht möglich bei einem Virtual ListView, dem will ich aber auf den Grund gehen. mfg TUX |
Re: [D7]Virtual ListView Einträge hinzufügen
Hallo TUX,
ich hätte meinen Beitrag nicht gepostet, wenn ich nicht gewusst hätte, dass das von dir beschriebene Verhalten bei mir nie auftritt. Der Fehler muss auf deiner Maschine zu suchen sein, nicht in deinem oder meinem Programm. marabu |
Re: [D7]Virtual ListView Einträge hinzufügen
Hi,
ja aber was soll das sein, ich benutze Delphi 7 Personal auf einer Window98SE Maschine. Habe deine Demo, ganz normal kompiliert und dann trat das Verhalten auf so wie ich es beschrieben habe. mfg TUX |
Re: [D7]Virtual ListView Einträge hinzufügen
Wäre es möglich, dass Windows98SE sich bei vielen Sachen anders verhält als XP? Ich habe auch schon die Erfahrung gemacht, dass sich auf XP kompilierte Programme auf 98 anders verhalten bzw. manchmal Fehler erzeugen oder im Extremfall gar nicht laufen.
|
Re: [D7]Virtual ListView Einträge hinzufügen
Hi,
ich weiß wieso das bei dir Funktioniert und bei mir nicht Marabu, und zwar liegt es an folgender Problematik. Wenn man die Liste aufruft, nach unten scrollt und einen Eintrag auswählt, dann ein neuen Eintrag hinzufügt dann bleibt der Auschnitt erhalten sowie der Scrollbalken an seiner Postion. Ist jedoch kein einziger Eintrag ausgewählt so springt jedesmal der scrollbalken nach oben... Wenn ein Eintrag selektiert wurde und man scrollt weiter und fügt einen Eintrag hinzu dann springt der Ausschnitt zu der Stelle des Selektierte Eintrages. Man müßte also immer einen Eintrag aus dem aktuellen Ausschnitt selektieren, damit der Ausschnitt so bleibt wie gewünscht und nicht 'verschoben' wird. Also fuscht man sich soetwas zurecht, weil es keine andere Lösung gibt oder man muß sich noch etwas ganz anderes ausdenken, wobei mir einfach nichts einfällt wie es doch gehn sollte. mfg TUX |
Re: [D7]Virtual ListView Einträge hinzufügen
könntest du dir nicht einfach den letzten itemindex speichern und nach dem hinzufügen wieder diesen selektieren?
|
Re: [D7]Virtual ListView Einträge hinzufügen
Hi,
wenn doch kein Eintrag selektiert ist ist ItemIndex = -1, was soll ich mir den da merken, ausserdem ist die Problematik ja nur bei keiner Selektion oder einem selektierten Eintrag ausserhalb des Ausschnittes. Wenn ein Eintrag aus meinem aktuellen Ausschnitt selektiert wurde, funktioniert ja alles wie es soll...dann brauch ich mir auch nix merken. mfg TUX |
Re: [D7]Virtual ListView Einträge hinzufügen
Hallo TUX,
wenn die unerwünschte Neupositionierung nur dann erfolgt, wenn kein Item selektiert ist, dann erzwinge doch eine Selektion, entweder für TopItem oder für das neu angefügte Item. marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz