Wolny TListView?

0

Oto mój problem:

Pobieram z bazy mySQL zestaw rekordów, powiedzmy ok. 3000 i później w pętli dodaję owe rekordy do TListView. I tu zaczyna się problem, w miarę ich dodawania, prędkość dodawania maleje. A przy owej ilości 3000 komponentów proces załadowania ich do listy trwa ponad minutę ;-(

Czy jestem na to skazany? [glowa] Zakładam że chcę koniecznie mieć to w TListView.

PS. BeginUpdate - EndUpdate niewiele pomaga.

0

Ustaw wlasciwosc OwnerData na true. ListView pracuje wtedy w trybie wirtualnym.

Musisz sam obsluzyc dane. (OnData, OnDatahint). Masz w demosach przyklad.

Poszukaj artykułu na planeta-delphi.com

0

Chmolu czy mam przez to rozumieć, że tryb wirtualny i własnoręczne rysowanie zawartości każdej linii będzie szybsze od metody wbudowanej?

Lukas dzięki za podpowiedź, ale na samym końcu mojego postu zaznaczyłem że to niewiele pomaga ;-)

0

Chmolu czy mam przez to rozumieć, że tryb wirtualny i własnoręczne rysowanie zawartości każdej linii będzie szybsze od metody wbudowanej?

mylisz chyba owner draw z owner data

w trybie wirtualnym (owner data) przed wyswietleniem komponent "pyta" rodzica co w danej linii ma byc a rysuje juz to sobie sam

to jest przydatne kiedy juz i tak musimy gdzies przechowywac duze ilosci danych i nie ma sensu zeby komponent (TListView) przechowywal je sobie drugi raz a wtedy odpada dlugotrwale dodawanie i ich do listy i synchronizacja zawartosci listy z naszymi danymi

a tak w ogole jesli chcesz po prostu szybciej dodac to mozna probowac TListView.Items.BeginUpdate i TListView.Items.EndUpdate

1 użytkowników online, w tym zalogowanych: 0, gości: 1