嗳呀,这个问题实在是简单加EASY。根本无须寻找其它的控件,或建立什么
新的自定义控件,用Delphi提供的TTreeView本身即可解决问题,可见你未
完全领略该TTreeView的特性。方法如下:
首先,你得在表单中放置一个TTreeView及TImageList控件,然后,为
TImageList控件提供两个或更多个的位图,以表示你的不同的访问级别,而不
仅是CheckBox而已,并将TTreeView的Images属性置为该TImageList控件,
至此你已完成基本设定。(你可以双击此TreeView,并随便加入几个节点,马上
你能看到你的ImageList中的第一个位图显示在主表单的TreeView的相应节点处)
别急,下面讲述如何实现你所说的不同访问级别:
其实你只需在TreeView的MouseDown事件中作类似如下的判定即可:
procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
MyHitTest : THitTests;
begin
MyHitTest := TreeView1.GetHitTestInfoAt(X,Y);
if htOnIcon in MyHitTest then
{
现在已测定出是在位图上进行了点击,你可据此实现CheckBox功能,
只需将该节点的ImageIndex属性置为前面TImageList中的相应位图
即可。至于当前节点,可由TreeView.Selected获得,也可由
GetNodeAt(X,Y)获得。
在此,你可根据情况实现更多的级别控制,而非仅是CheckBox而已。
};
end;
我想,到此,你应该理解了吧。这个问题也应该结束了,否则实在太对不起
我的劳动了。
祝你好运,受到老板的赏识。