|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
раскраска Treeview
Ребят, нужна помощ.. есть treeview, в нем есть заглавия и список (допустим такое разветвление):
Иван чето-там Петр чето-там Семен чето-там вот нужно чтобы все елементы "чето-там" были красного цвета, а имена черного.... компонент не имеет свойств font и canvas для пунктов.... Как можно ето реализовать? заранее спасибо |
#2
|
||||
|
||||
Изменение цвета узлов
Используй событие OnAdvancedCustomDrawItem и в зависимости от уровня узла меняй цвет:
Код:
procedure TForm1.TreeView1AdvancedCustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState; Stage: TCustomDrawStage; var PaintImages, DefaultDraw: Boolean); begin DefaultDraw := true; if Node.Selected then // В зависимости от того, выделен узел или нет // Используются разные цветовые схемы // А то черный цвет на синем фоне - мрак begin if (Node.Level = 0) then Sender.Canvas.Font.Color := clWhite // это самый верхний узел else Sender.Canvas.Font.Color := clRed; // а это остальные end else begin if (Node.Level = 0) then Sender.Canvas.Font.Color := clBlack // это самый верхний узел else Sender.Canvas.Font.Color := clRed; // а это остальные end; end; Необходимо менять именно Sender.Canvas.Font.Color т.к. при стандартной прорисовке вызывается функция DrawText , которая использует параметра шрифта той канвы, где рисует. Велик и могуч наш Object Pascal ! ICQ: 357-591-887 |