Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.04.2010, 14:42
Gman Gman вне форума
Новичок
 
Регистрация: 25.02.2010
Сообщения: 59
Репутация: -54
По умолчанию Раскрасить 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  
Старый 27.04.2010, 21:39
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

Здесь :

http://flexiobjdb.narod.ru/download/...as_v-01_02.zip

среди исходников есть компонент (D7) от TreeView (с раскраской) :

_z_Tree_DB_fodb.pas и _z_FODB_ObjectTree.pas.

не бог весть что, но как пример может и сгодится.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:11.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter