Witam. Od dłuższego czasu testuję VirtualTreeView, obecnie nie
wyobrażam sobie pracy bez niego, TListView poszło już do lamusa.
Chłopaki pomyśleli o wszystkim, jednak nie mogę uwierzyć, że nie
ma bardzo ważnej dla mnie opcji. Przewertowałem wszystkie metody w
VST ale nic nie dało.
Otóż chcę co drugą linię wyróżniać innym kolorem, tak dla
przejrzystości. W On Cellpaint (cell, nie item bo w niektórych
przypadkach koloruje tylko wybrane komórki) sprawdzam czy
"Odd(Node.Index)=True" (czy jest parzysta) jeżeli tak to koloruje
kolorem 1 jeżeli nie to kolorem 2 . Wszystko ok ale użytkownik mojej
aplikacji ma możliwość sortowania i filtrowania listy przez co
zdarza się, że obok siebie znajdują się Nody o parzystych indexach,
co za tym idzie, kolorowanie jest nieprawidłowe. Jak pobrać
"prawdziwy" index nody znajdującej się na liście?
Chodzi o to:
Node1: index=0
Node2: index=1
Node3: index=2
Teraz np. chowie sobie środkową node metodą VST.IsVisible[Node2] :=
False. Jak teraz zrobić żeby indexy miały taką formę:
Node1: index=0
Node3: index=1
A nie taką:
Node1: index=0
Node3: index=2
Najlepiej żeby nie wymagało to prze indeksowania wszystkich nodów bo
na liście mam około 10 000 rekordów :) . Dodam że AbsoluteIndex zwraca mi to samo co Index, a myślałem że to jest to czego szukam. ProceduraBeforeItemPaint też nie działa u mnie tak jak należy :\ .
Z góry dzięki i pozdrawiam