Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > фонт у одного элемента treeview


Автор: Max111 11.5.2006, 21:53
Доброе утро

Можно ли у одного item'а treeview сделать фонт bold а у всех остальных
item'ов этого treeview сделать простой (не болд) фонт? 

Автор: Mechanic 11.5.2006, 22:09
В DRKB есть сорец компонента THeTreeView, так он как раз это делает.
Плюс, он намного быстрее стандартного, но это уже офтоп. 

Автор: Мишка 17.5.2006, 09:03
Это делается почти элементарно smile

Код

procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
  Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  with TCustomTreeView(Sender).Canvas do
  begin
    // выделяем нужную ветку другим цветом
    if Node.AbsoluteIndex = 1 then
    begin
      Font .Style := [fsBold];
      Font .Color := clRed;
    end;
    // а тут еще интереснее, меняем цвет и заливку при "выделении" ветки
    if cdsSelected in State then
    begin
      Font .Color := clBlue;
      Brush.Color := $00E6E6E6;
    end;
  end;
end;
 

Автор: artem1987 25.7.2006, 18:38
Код

procedure TfmTypes.TreeView1CustomDrawState(Sender: TCustomTreeView;
  Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
     if cdsSelected in State then 
        Sender.Canvas.Font.Style := Sender.Canvas.Font.Style + [fsItalic]+[fsUnderline];
end;

здесь по выделения node поменяй на index.  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)