我用TJVTreeView实现树的CheckBox功能,当一个节点Check时触发一个事件,但是我查了一下,这个控件好象没有提供OnChecked事件,那我把Check时触发的代码写在哪里呢。我现在是这样处理的,写在Onlick里。
procedure TfrmCzy.trvRightClick(Sender: TObject);
var fNode:TJVTreeNode;
begin
inherited;
fNode:=TJvTreeNode(trvRight.selected);
if showDlg('确实要赋予'+fNode.Text+'的所有权限吗?','询问',2,suiInformation)=mrOK then
showmessage('ok')
else
showmessage('cancel');
end;
这样带来一个问题,就是点击节点展开树时,也会出现提示框。最好是把这段代码写在类似OnChecked之类的事件里。请各位高手帮帮忙。
procedure TfrmCzy.trvRightClick(Sender: TObject);
var fNode:TJVTreeNode;
begin
inherited;
fNode:=TJvTreeNode(trvRight.selected);
if showDlg('确实要赋予'+fNode.Text+'的所有权限吗?','询问',2,suiInformation)=mrOK then
showmessage('ok')
else
showmessage('cancel');
end;
这样带来一个问题,就是点击节点展开树时,也会出现提示框。最好是把这段代码写在类似OnChecked之类的事件里。请各位高手帮帮忙。
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
procedure TfrmCzy.trvRightClick(Sender: TObject);
var
HitTests: THitTests;
fNode:TJVTreeNode;
begin
with TJVTreeView(Sender) do
with ScreenToClient(Mouse.CursorPos) do
HitTests := GetHitTestInfoAt(X, Y);
if htOnItem in HitTests then
begin
//这里才表示点击节点而不是其他,在此处写你的代码
end;
end;—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
牛人啊!厉害呀!
给分了!