|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2004/2/5 12:19:46 |
标题: |
|
加入我的收藏 |
楼主: |
我想在treeview的onclick中实现点击某一项时将其变色(只要求当前被选中的项变色),如果又选择了其它项则把前一个被选中项的颜色变回。 我在onclick中写代码的目的是当光标从treeview中移开时选中的项目仍保持变后的颜色!
----------------------------------------------
我真的不会! |
作者: |
|
2004/2/5 12:33:48 |
1楼: |
本身就是变色的啊!
----------------------------------------------
我来自农村广阔的田野我的每一个动作都很夸张http://waterstone.51r.com
|
作者: |
bios (阿贡) |
★☆☆☆☆ |
-
|
盒子中级会员 |
|
2004/2/5 12:37:03 |
2楼: |
procedure TForm1.tv1CustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean); var a:string; NodeRect: TRect; begin if node.Selected then begin tv1.Canvas.Font.Color := clred; tv1.Canvas.Font.Style := [fsBold]; tv1.Canvas.Brush.Color :=clWindow; tv1.Canvas.Pen.Color :=clWindow; end else begin tv1.Canvas.Font.Color := clblack; tv1.Canvas.Font.Style := []; tv1.Canvas.Brush.Color :=clWindow; tv1.Canvas.Pen.Color :=clWindow; end;
DefaultDraw := true; end;
----------------------------------------------
|
作者: |
|
2004/2/5 14:53:14 |
3楼: |
成功了,但是我有问题: tv1.Canvas.Brush.Color :=clWindow; tv1.Canvas.Pen.Color :=clWindow; 以上两句是不是把不符合条件的项变回原来的模样? 另外 DefaultDraw := true;是不是让保存了改变后的效果?
谢谢bios大哥!
----------------------------------------------
我真的不会!
|
作者: |
bios (阿贡) |
★☆☆☆☆ |
-
|
盒子中级会员 |
|
2004/2/5 14:56:06 |
4楼: |
1)是呀 2)是其他画法调用系统父类的成员函数,不然如果是false 你会发现 文字变的异常,因为那意味着所以的风格都必须自己重写 偶试过很难控制的!
----------------------------------------------
|
|