Genau das ist doch der Vorteil des ListView, dass nur die sichtbaren Elemente auch vorhanden sind. Bei der ListBox sind immer alle vorhanden und brauchen damit viel Speicher und lange zum Erstellen.
Ach das ist doch eine frage wie man die Einträge behandelt.
Wenn man alle nicht sichtbaren Einträge behandelt ist das kein Wunder es geht aber auch anders. (Ist aber nicht mein Problem)
Vorteile sehe ich da bei dem ListView in dieser Hinsicht keine.
Listbox
Delphi-Quellcode:
TopIndex := ListGetTopIndex(WinHandle);
Count := ListCount(WinHandle);
for i := TopIndex to Count do
begin
ListView
Delphi-Quellcode:
TopIndex := ListView_GetTopIndex(WinHandle);
Count := ListView_GetItemCount(WinHandle);
for i := TopIndex to Count do
begin
Unterschiede sehe ich da keine bei beiden müssen alle Einträge durchlaufen werden.
Hingegen.. bei der abfrage von nur sichtbaren teilen werden die nicht sichbaren Teile nicht mehr gezeichnet beim Scrollen.
Delphi-Quellcode:
TopIndex := ListView_GetTopIndex(WinHandle);
Count := ListView_GetCountPerPage(WinHandle);
for i := TopIndex to Count do
begin
Wo ist da der Vorteil?
Warum also gibt es kein LVM_SETTOPINDEX wie bei der ListBox LB_SETTOPINDEX.. sorry das ist Schmarrn.
Hier muss man mit Pixeln rechnen abhängig vom Font.. bei der ListBox nicht nötig.
Das gleiche mit der VScrollBar die kann man nicht abschalten und wenn man es tut lässt sich das ListView nicht mehr scrollen.
gruss