能否指定TreeView控件中的某个Node上字体颜色???(100分)

C

catfox

Unregistered / Unconfirmed
GUEST, unregistred user!
TreeView的Items从数据库读取数据动态生成,而且根据相应属性各个node会不同颜色,
如何实现?
 
好像不可以吧???!!!
 
自己画应该可以的,可是我不会,你找找以前的贴子,只有能定位坐标,画应该容易
 
自己画,帮助里面的例子
procedure TCustomDrawForm.TVCustomDraw(Sender: TCustomTreeView; const ARect: TRect; var DefaultDraw: Boolean);
begin
//This event should be used to draw any background colors or images.
//ARect represents the entire client area of the TreeView.
//Use the TreeView's canvas to do the drawing.
//Note that drawing a background bitmap is not really supported by CustomDraw,
//so scrolling can get messy. Best to subclass the TreeView and handle scrolling

//messages.
with TV.Canvas do
begin
if None1.Checked then //no picture
begin
Brush.Color := BkgColorDialog.Color;
Brush.Style := FBrushStyle;
FillRect(ARect);
endelse
if Tile1.Checked then //tile bitmap
begin
Brush.Bitmap := Image1.Picture.Bitmap;
FillRect(ARect);
endelse //Stretch across the canvas.
StretchDraw(ARect, Image1.Picture.Bitmap);

end;
DefaultDraw := FDefaultDraw;
//setting DefaultDraw to false here prevents all calls to OnCustomDrawItem.
end;
 
procedure TMainForm.TreeView1CustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if node.Selected then
begin
treeview1.Canvas.Font.Color:=clred
end
else
begin
treeview1.Canvas.Font.Color:=clblack;
end;
end;
 
procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if node.Text ='red' then
begin
sender.Canvas.brush.Color := clREd;
end;
if node.Text ='blue' then
begin
sender.canvas.brush.color := clblue;
end;
if node.text ='green' then
begin
sender.Canvas.brush.color := clgreen;
end;
end;
找了一个,你看看
 
thx everybody
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
692
import
I
顶部