Вниз
Скачать: 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.023 c
11-1092577936
SSSSS
2004-08-15 17:52
2005.03.06
Canvas и компания....


1-1109082760
HydraMarat
2005-02-22 17:32
2005.03.06
Как выделить область в стеке?


14-1108528503
Artvz
2005-02-16 07:35
2005.03.06
CRC32


1-1108989467
qwerr
2005-02-21 15:37
2005.03.06
Дочерние окна !!!


1-1108822344
Ivolg
2005-02-19 17:12
2005.03.06
Глюк с MediaPlayer




   Наверх