Powolne działanie komponentu TTreeView

0
var
   TV : TReeView;

1:

   for i := 0 to TV.Items.Count - 1 do
   begin
     if TV.Items[ i ].Text = '1' then
     begin
     end;
   end;

2:

   node := TV.Items.GetFirstNode;
   while node <> nil do
   begin
      if node.Level = 1 then
      begin

      end;
      node := node.GetNext;
   end;

Mam problem bo ten kawałek kodu wykonuje mi się bardzo powoli, w wersji 1 i 2. Wydaje mi się, że dostęp do itemów TreeView'a jest wolny i stąd ten problem. Czy ma ktoś pomysł jak przyspieszyć odczyt z TreeView'a?

znalazłem:
http://www.scalabium.com/faq/dct0110.htm
zastosowałem ale nie dużo pomogło

3

Zamienić standardową kontroklę TTreeView na TVirtualTreeView - jest nie dość, że szybszy, to jeszcze dużo bardziej rozbudowany.

0

nie bardzo mogę używać gotowych komponentów nie dostarczonych ze środowiskiem( dont ask why ). Więc muszę się przemęczyć z TTreeView.
Nieznacznie pomogło użycie for in

for node in TreeView do
begin
      if node.Level = 1 then
      begin

      end;
end;
0

Raczej tego już nie przyspieszysz; Ewentualnie możesz spróbować wywoływać BeginUpdate i EndUpdate odpowiednio przed i po modyfikacjach, ale skoro już czytałeś o tym...

0

Jaram się tym komponentem jak ksiądz nowym ministrantem. Można polecić faktycznie dużo lepiej działa ogolnie jest mega o!

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