TListView - Problem szybkości wczytywania danych

0

Witam.

Poszukuje rozwiązania problemu szybkości wczytywania danych do komponentu typu TListView.
Sprawa wyglada tak.
Na listę wczytywane jest około 4 000 wierszy tekstu, do 7 kolumn.Trzy z tych kolum przechowują wpisy, które składają sie z duzej ilości tekstu...
Załadowanie takiej ilosci danych na TListView trwa na moim komputerze (Athlon3000+) około 2.3s.
Proszę o pomoc jak szybciej wczytywać dane na listę.
Wiem, że można szybciej, bo sprawdzając na tych samych danych komponent stąd: http://www.delphi-gems.com/VirtualTreeview/
, czyli TVirtualtreeView cały proces wczytywania trwa u mnie około 150ms!
Ktoś się zapyta dlaczego zatem używam standardowego tListView, zamias TVirtualTreeView. Otóz, TListView mam opanowane perfekcyjnie, a podany przykładowy komponent, jest dosyć skomplikowany, jego poznanie zajełoby mi za duzo czasu.

Zatem mam kilka pytań.

  1. Jak zwiększyc szybkość wczytywania danych do ListView?
  2. Czy zastosowanie wskaźników przyspieszy ten proces? Jak zastosowac wskaźniki przy wczytywaniu danych na TListView? Proszę o przykład, niestety nie znam wskaźników...
  3. Jeśli powyzsze są niewykonalne, to proszę kogoś, kto zna komponent TVirtualTreeView o przyblizenie mi kilku kwestii (dema komponentu są zakręcone...), mianowicie:
    3a. W jaki sposób wczytuje sie dane do tego komponentu (cos ala ListView.Items.Add('cos');)
    3b. W jaki sposób odczytać wartość pola, np. 4 wiersza i 6 kolumny
    3c. Jak dodać obrazek do dowolnej komórki na liście, szczególnie do 1 kolumny (dowolny obrazek, różny w różnych wierszach kolumny)

To tyle, proszę o pomoc...
Pozdr

0

TListView.Items.BeginUpdade;
TListView.Items.EndUpdade;

Dzięki temu nie będzie odświerzany co element

0
Oleksy_Adam napisał(a)

TListView.Items.BeginUpdade;
TListView.Items.EndUpdade;

Dzięki temu nie będzie odświerzany co element

Tak, oczywiście. Uzywam tych metod. Poszukuję dodatkowych "chwytów" ;)

0
Pepe napisał(a)

Poszukuje rozwiązania problemu szybkości wczytywania danych do komponentu typu TListView.

Witam.
Postanowiłem odświeżyć posta, jako że nadal nie znam odpowiedzi...
Pokrótce przypomnę o co chodzi. Otóż, chciałbym was prosić o pokazanie, w jaki sposób można zrealizować kilka zadań przy użyciu komponentu TVirtualTreeView (http://www.delphi-gems.com). A są to:

  1. W jaki sposób wczytuje sie (usuwa) dane do tego komponentu (cos ala ListView.Items.Add('cos');)
  2. W jaki sposób odczytać wartość pola, np. 4 wiersza i 6 kolumny
  3. Jak dodać obrazek do dowolnej komórki na liście, szczególnie do 1 kolumny (dowolny obrazek, różny w różnych wierszach kolumny)
    To tyle, w sumie nie dużo ;)

Proszę o pomoc.
Dzięki

0
teles4 napisał(a)

Tu po polsku Virtual Treeview
a tu po rosyjsku http://quadr0.pochta.ru/VirtualTreeview/virtualtreeview_pdf.zip

Oj, jak mogłem to przeoczyć? Dzięki.
Pozdr

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