Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
14-1108455916
Hawk2
2005-02-15 11:25
2005.03.06
ТВ-Тюнеры


4-1106055314
Gummer
2005-01-18 16:35
2005.03.06
TListView: проблема редактирования


14-1108560505
TeNY
2005-02-16 16:28
2005.03.06
Интересно,а реклама C++ на сайте посвященному Delphi это издевка?


1-1108801032
Bogdan
2005-02-19 11:17
2005.03.06
Image


1-1109050602
zzz1234vdddrf
2005-02-22 08:36
2005.03.06
Удаление обьектов....




   Наверх