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


Автор: Trooper 16.6.2011, 16:42
Подскажите, как сделать в компоненте VirtualTreeView такое же рисование цветной линии и более высокой линии, как на рисунке (только под элементами корня)

Автор: Dik0n 16.6.2011, 19:38
Цитата

VirtualTreeView

Trooper, наварное VirtualStringTree, если да, то как вариант можно так

Код

procedure TForm1.vtMeasureItem(Sender: TBaseVirtualTree;
  TargetCanvas: TCanvas; Node: PVirtualNode; var NodeHeight: Integer);
begin
  if Node.ChildCount > 0 then NodeHeight := 22;
end;

procedure TForm1.vtAfterItemPaint(Sender: TBaseVirtualTree;
  TargetCanvas: TCanvas; Node: PVirtualNode; ItemRect: TRect);
begin
  if Node.ChildCount = 0 then Exit;

  with TargetCanvas, ItemRect do
  begin
    Pen.Width := 2;
    Pen.Color := $B59784;

    MoveTo(Left, Bottom - 1);
    LineTo(Right, Bottom - 1);
  end;
end;

procedure TForm1.vtPaintText(Sender: TBaseVirtualTree;
  const TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
  TextType: TVSTTextType);
begin
  if (Column = 0) and (Node.ChildCount > 0) then
  begin
    TargetCanvas.Font.Style := [fsBold];
    TargetCanvas.Font.Color := $B59784;
  end;
end;


ЗЫ: Ну а вообще там куча вариантов отрисовки, эксперементируй smile 

Автор: Trooper 17.6.2011, 10:54
Dik0n, Спасибо то, что надо!!!

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