ListView wyszukiwanie

GA
  • Rejestracja:prawie 17 lat
  • Ostatnio:ponad 13 lat
0

Witam

Na formatce mojej aplikacji znajduje się ListView. W aplikacji istnieje możliwość wyszukiwania pozycji na liście. Chcę aby na ListView wyświetlone były tylko znalezione elementy.
Obiekt TListItem nie ma metody Visible, więc nie mogę ukryć zbędnych elementów. Obecnie robię to w ten sposób, że czyszczę listę a następnie kolejno dodaje pozycje do listy. Metoda ta jest jednak dosyć wolna jeśli na liście jest kilkaset obiektów. Czy jest jakaś inna (szybsza) metoda ukrywania i wyświetlania obiektów?

Misiekd
  • Rejestracja:ponad 21 lat
  • Ostatnio:prawie 13 lat
  • Postów:7923
0

se ne da :(
use TVirtualTreeView Luc :p


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij
cimak
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 9 lat
  • Postów:1668
0
gamestone napisał(a)

[...] czyszczę listę a następnie kolejno dodaje pozycje do listy. Metoda ta jest jednak dosyć wolna jeśli na liście jest kilkaset obiektów. [...]

a uzywasz beginUpdate i endUpdate? to znaczaca przyspiesza dodawanie wpisow. ostatecznie kilkaset to nie tak duzo...
dodanie 2000 itemow przy 4 kolumnach zajmuje u mnie ok 641ms. przy uzyciu begin-endupdate 266ms.

Misiekd
  • Rejestracja:ponad 21 lat
  • Ostatnio:prawie 13 lat
  • Postów:7923
0

@cimak u mnie ListView nie posiada begin/end update :>


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij
GA
  • Rejestracja:prawie 17 lat
  • Ostatnio:ponad 13 lat
0
Misiekd napisał(a)

@cimak u mnie ListView nie posiada begin/end update :>

Każdy ListView to ma, ale w klasie TListItems (listview.Items.BeginUpdate)

Używam begin/endupdate. Przyspiesza to oczywiście działanie ale nieznacznie. Wyświetlam ikony w formie miniatur (ok 80x120). Używam TJVListView z pakietu jedi. Przerysowanie 200 elementów i sortowanie na słabszym komputerze trwa nawet 3 sekundy.
Wypróbuję jeszcze virtualtreeview

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.