|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Раскрасить TreeView
Всем привет! У меня не выходить корректно в зависимости от параметров раскрасить шрифт узлов в TreeView.
Имеется дерево (только нулевой уровень) с узлами. По нажатии кнопки эти узлы проверяются по определённому критерию. Если узел удовлетворяет критерию №1 x[1]:=0, если не удовлет. то 1. Отсюда в TreeView2CustomDrawItem в соответствие с получ. парам. дерево раскрашивается. Вот код : Код:
procedure TForm1.Button2Click(Sender: TObject);//кнопки проверки var i,j,g:integer; begin rask:=1; //разрешаем перекрашивать if TreeView2.Items.Count>0 then BEGIN //проверяем есть ли на компьютер паспорт и опред. парам for i:=0 to TreeView2.items.Count - 1 do for j:=0 to TreeView1.Items.Count-1 do //если есть тогда if TreeView2.Items.Item[i].Text=TreeView1.Items.Item[j].Text then Begin ki[i]:=1; .....................{ост. усл.} Break; End else ki[i]:=0; END; for I:=0 to TreeView2.items.Count - 1 do TreeView2.items[i].Selected:=true;//только после этой команды всё перекрашивается end; procedure TForm1.TreeView2CustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean); var i,j,g:integer; begin if rask=1 then BEGIN for i:=0 to TreeView2.items.Count-1 do if ki[i]<>1 then if Node.Index=i then Sender.Canvas.Font.Color:=ClRed; END; end; Проблема в следующем: При передвижении "скроллинга" и при наступлении TreeView2Change - всё ужасно тормозит (заново отрисовываясь), без раскраски работает оч шустро. Есть ли возможность чтоб это один раз раскрасилось по нажатии кнопки и больше ничего не делало(не перекрашивалось и по одной команде перекрашивалось бы без выделений). Буду оч. благодарен за помощь!! Последний раз редактировалось Gman, 21.04.2010 в 15:12. |
#2
|
|||
|
|||
Здесь :
http://flexiobjdb.narod.ru/download/...as_v-01_02.zip среди исходников есть компонент (D7) от TreeView (с раскраской) : _z_Tree_DB_fodb.pas и _z_FODB_ObjectTree.pas. не бог весть что, но как пример может и сгодится. |