Главная страница
    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.035 c
1-1108744682
TTR
2005-02-18 19:38
2005.03.06
Для чего нужно закрывать хэндл процесса в функции CreateProcess ?


4-1106636527
bjohny
2005-01-25 10:02
2005.03.06
Управление Canon PowerShot


1-1109093174
Alexois
2005-02-22 20:26
2005.03.06
Помогите пожалуйста


4-1106081297
Oddin
2005-01-18 23:48
2005.03.06
CD-ROM


14-1108617817
Anonim
2005-02-17 08:23
2005.03.06
Подътягивание





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский