AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[D7]Virtual ListView Einträge hinzufügen

Ein Thema von TUX_der_Pinguin · begonnen am 22. Dez 2005 · letzter Beitrag vom 22. Dez 2005
Antwort Antwort
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#1

[D7]Virtual ListView Einträge hinzufügen

  Alt 22. Dez 2005, 09:21
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: [D7]Virtual ListView Einträge hinzufügen

  Alt 22. Dez 2005, 09:44
Hallo TUX,

das von dir beschriebene Verhalten wirst du in meinem Demo-Programm nicht beobachten. Vermutlich liegt das an deinem Code.

Grüße vom marabu
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: [D7]Virtual ListView Einträge hinzufügen

  Alt 22. Dez 2005, 10:30
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: [D7]Virtual ListView Einträge hinzufügen

  Alt 22. Dez 2005, 11:56
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
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: [D7]Virtual ListView Einträge hinzufügen

  Alt 22. Dez 2005, 12:08
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
  Mit Zitat antworten Zitat
Wraith
(Gast)

n/a Beiträge
 
#6

Re: [D7]Virtual ListView Einträge hinzufügen

  Alt 22. Dez 2005, 12:21
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.
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: [D7]Virtual ListView Einträge hinzufügen

  Alt 22. Dez 2005, 12:35
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
  Mit Zitat antworten Zitat
Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
620 Beiträge
 
#8

Re: [D7]Virtual ListView Einträge hinzufügen

  Alt 22. Dez 2005, 12:38
könntest du dir nicht einfach den letzten itemindex speichern und nach dem hinzufügen wieder diesen selektieren?
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: [D7]Virtual ListView Einträge hinzufügen

  Alt 22. Dez 2005, 13:30
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: [D7]Virtual ListView Einträge hinzufügen

  Alt 22. Dez 2005, 13:44
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz