Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.27;
Скачать: CL | DM;

Вниз

рисование в treeview   Найти похожие ветки 

 
webpauk   (2007-05-10 20:26) [0]

Подскажите позволяет ли TtreeView отрисовывать TtreeNode разными цветами?

procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
 Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
var
 Rect: TRect;
 fI, fPos: Integer;
begin
 with TTreeView(Sender).Canvas do
 begin
   Brush.Color:=clWindow;

   if (cdsSelected in State) then
   begin
     Brush.Color:=clHighlight;
     Font.Color:=clHighlightText;

     Rect:=Node.DisplayRect(True);
     FillRect(Rect);
   end;

   Font.Color:=clBlack;

   fPos:=0;

   for fI := 1 to Length(Node.text) do
   begin
     Font.Color:=ColorArray[fI-1];

     TextOut(Rect.Left+fPos, Rect.Top, Node.Text[fI]);
     fPos:=fPos+TextWidth(Node.Text[fI]);
   end;
 end;
end;


раскрашивает только последним цветом, а надо чтобы все буквы отличались...


 
Loginov Dmitry ©   (2007-05-10 22:54) [1]

Без промежуточного буфера действительно чесь нихотит.

Вот такое, к примеру, работает:


procedure TForm1.TreeView1AdvancedCustomDrawItem(Sender: TCustomTreeView;
 Node: TTreeNode; State: TCustomDrawState; Stage: TCustomDrawStage;
 var PaintImages, DefaultDraw: Boolean);
var
 Rect: TRect;
 Bitmap: TBitmap;
begin
 Rect := Node.DisplayRect(True);

 Bitmap := TBitmap.Create;
 try
   Bitmap.Width := Rect.Right - Rect.Left;
   Bitmap.Height := Rect.Bottom - Rect.Top;
   with Bitmap.Canvas do
   begin
     DefaultDraw := False;
     Font.Color := clGreen;
     TextOut(0, 0, "111");
     Font.Color := clRed;
     TextOut(TextWidth("111"), 0, "222");
     Sender.Canvas.Draw(Rect.Left, Rect.Top, Bitmap);
   end;
 finally
   Bitmap.Free;
 end;
end;



Страницы: 1 вся ветка

Текущий архив: 2007.05.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.04 c
9-1151171895
delphiman2006
2006-06-24 21:58
2007.05.27
Боты для игр


3-1173595209
_kos
2007-03-11 09:40
2007.05.27
Подключение к удалённой mysql


2-1178621821
RomanLN
2007-05-08 14:57
2007.05.27
как подогнать в компоненте DBGrid1 столбцы по ширине строки


2-1178698444
Zahadum
2007-05-09 12:14
2007.05.27
Несколько вопросов по Memo


3-1173781864
Дмитрий А.
2007-03-13 13:31
2007.05.27
Как через ADO из Delphi создать столбец в таблице Access?