有没有给树节点的背景添加颜色的?这个问题提了,但是找不到了,翻了几页也没有找着,只好再提,请能者吱一声,谢谢了,等
解决方案 »
- 扩大交际圈,想和常年研究GIMP\CIMAGE\Paint.net \FreeImage\Devil\ImageMagick等人士交个朋友。
- delphi 做了一个程序,想打开程序时,在任务管理器的进程里隐藏起来,哪个大大有办法
- 2007-04-03不能转换为int
- 高手请进,制作可以查询域名的程序的思路?
- ====再问:如何动态获取股票数据====
- 如何从sql中的表单中读取数据来进行逐个比较?
- 怎样做帮助文件?
- 紧急求助,vcl控件,我怎样写属性编辑器
- RichEdit控件在win98的问题
- 关于LISTVIEW中添加内容的简单问题?
- 请问如何使pagecontrol 不显示 tabstree 呀?
- Raize里面的RzCheckTree,怎么判断当前节点状态,TRzCheckState没法用于某个子节点吗?
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if cdsSelected in state then //选中的结点颜色
begin
(Sender as TTreeview).Canvas.Brush.Color:=clblue;
(Sender as TTreeview).Canvas.Font.Color:=clRed;
end
else
begin
(Sender as TTreeview).Canvas.Brush.Color:=clGreen;
(Sender as TTreeview).Canvas.Font.Color:=clBlack;
end;
end;TreeItem的其他状态(转帮助)cdsSelected The control or item is selected.
cdsGrayed The control or item should appear grayed.
cdsDisabled The control or item is disabled.
cdsChecked The item should appear checked.
cdsFocused The control or item has input focus.
cdsDefault The item is the default item.
cdsHot The item is under the mouse and the HotTrack property is True.
cdsMarked The item is ed (ed items appear shaded by default).
cdsIndeterminate The item is neither selected nor unselected.
var
i:integer;
begin
for i:=0 to 9 do
TreeView1.Items.Add(nil,'aa'+inttostr(i));
end;procedure TForm1.Button2Click(Sender: TObject);//生成树2
var
i:integer;
begin
for i:=0 to 9 do
node:=TreeView2.Items.Add(nil,'aa'+inttostr(i));
end;procedure TForm1.TreeView2CustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
var
str:String;
begin //如果节点是Treeview1的选中节点,加上颜色
if TreeView1.Selected.Index>0 then
begin
str:=Treeview1.Selected.Text;
if Node.Text=str then
begin
(Sender as TTreeview).Canvas.Brush.Color:=clGreen;
(Sender as TTreeview).Canvas.Font.Color:=clBlack;
end;
end;
end;procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if Node.Index = Treeview1.Selected.Index then //选中的结点颜色
begin
(Sender as TTreeview).Canvas.Brush.Color:=clblue;
(Sender as TTreeview).Canvas.Font.Color:=clRed;
end
end;procedure TForm1.TreeView1Click(Sender: TObject);
var //Treeview1选中节点改变重画Treeview2
str:String;
i:integer;
node:String;
begin
if TreeView1.Selected.Index>0 then
Treeview2.Repaint;
end;
end.