改变一个颜色的方法为TreeView.Canvas.Font.Color或者TreeView.Canvas.Brush.Color
但是改变之后再改回来的颜色和初始化的颜色不一样了,请问大家是怎么处理的
if StateFlag then
begin
TreeView1.Canvas.Brush.Color:=ClRed;
end
else
begin
TreeView1.Canvas.Brush.Color:=ClWindowText;
end;
改回来之后发现和系统初始化的不一样了,在点击该节点的时候为全蓝色
大家有没有遇到过呢?
但是改变之后再改回来的颜色和初始化的颜色不一样了,请问大家是怎么处理的
if StateFlag then
begin
TreeView1.Canvas.Brush.Color:=ClRed;
end
else
begin
TreeView1.Canvas.Brush.Color:=ClWindowText;
end;
改回来之后发现和系统初始化的不一样了,在点击该节点的时候为全蓝色
大家有没有遇到过呢?
改变节点颜色?那可以这样先在节点上保存一些信息,用来标明是否需要换色,然后再画,比如
procedure TCompanyOpenB.TreeView1CustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if Node.Level=0 then
exit;
if PTCoid(Node.Data).Isopen=false then //强制转换
TreeView1.Canvas.Font.Color:=clred
else
TreeView1.Canvas.Font.Color:=clblack;
end;