Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.06;
Скачать: CL | DM;

Вниз

Разноцветный TTreeView   Найти похожие ветки 

 
Guf ©   (2005-02-21 23:13) [0]

Здравствуйте все, у меня проблема - надо сделать  items в TTreeView разными цветами (достаточно двух - трех цветов).
Сначала пробовал через TTVItem, но TTVItem не имеет поля цвет.
Пытался разобраться с примером CustomDraw, вроде всё понятно, кроме одного: где хранить цвет? Поясню, там перекрывается процедура:
CustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode;
 State: TCustomDrawState; var DefaultDraw: Boolean);
begin
   if cdsSelected in State then
   begin
//рисуем то что надо...
   end;
end;

TCustomDrawState выглядит так, TCustomDrawState = set of (cdsSelected, cdsGrayed, cdsDisabled, cdsChecked, cdsFocused, cdsDefault, cdsHot, cdsMarked, cdsIndeterminate); С cdsSelected и cdsFocused все понятно,а как быть с остальными, например пишу:
   if cdsMarked in State then
   begin
ShowMessage("cdsMarked");
   end;

сообщение никогда не появляется, хотя в хелпе написано, что cdsMarked означает, что Item помеченный, а вот как его пометить не сказано.
Помогие, буду рад любым советам.


 
GanibalLector ©   (2005-02-22 01:33) [1]

Недавно с ibase.ru вытянул IBAnalyst .Так там юзают VirtualTreeView.В Aboute пишут,что взят  www.soft-gems.net
З.Ы.На счет исходников не знаю...не качал


 
Denis ©   (2005-02-22 09:35) [2]

А если записывать цвет при создании ветви в Node.Data? Если конечно у свойства нет иного назначения.
Либо осторожно использовать OverlayIndex. Не думаю, правда, что это правильно, но я иногда так делаю.


 
Cosinus ©   (2005-02-22 09:41) [3]

IMHO использовать Data или Objects.


 
riv   (2005-02-22 10:03) [4]

Использую CustomDrawItem
А что и как будет выглядеть храню в DATA

 if PTreeList(Node.Data).Count > 0 then begin
   Node.Text := PTreeList(Node.Data).O_Name + "  [" + IntToStr(PTreeList(Node.Data).Count) + "]";
   (Sender as TTreeView).Canvas.Font.Style := (Sender as TTreeView).Canvas.Font.Style + [fsBold];
 end else begin
   Node.Text := PTreeList(Node.Data).O_Name;
   (Sender as TTreeView).Canvas.Font.Style := (Sender as TTreeView).Canvas.Font.Style - [fsBold];
 end;



Страницы: 1 вся ветка

Текущий архив: 2005.03.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.051 c
14-1108553563
syte_ser78
2005-02-16 14:32
2005.03.06
dvd-to-avi


6-1104006670
Matrex
2004-12-25 23:31
2005.03.06
Как определить группу в которой находится юзер?


3-1107159992
YK
2005-01-31 11:26
2005.03.06
как узнать ID только что добавленной записе в InterBase


3-1107772442
Apophis
2005-02-07 13:34
2005.03.06
Работа с таблицами Paradox в сети - проблема с доступом!


10-1085603284
-=alive=-
2004-05-27 00:28
2005.03.06
OPC