Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];

Вниз

Разноцветный 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.033 c
4-1106413640
Engy
2005-01-22 20:07
2005.03.06
Заголовок активного окна


11-1090499233
raize
2004-07-22 16:27
2005.03.06
MessageDlg


1-1108649106
Knoxville
2005-02-17 17:05
2005.03.06
Загрузка определенных данных с веб-страницы


9-1102340699
Glander
2004-12-06 16:44
2005.03.06
графика в delphi


1-1108965228
Кир
2005-02-21 08:53
2005.03.06
TreeView разные ветки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский