var
treenode1,treenode2:TTreeNode;
With TreeView1.Items Do
Begin
//增加根接点;
TreeNode1:=Add(nil, '状态');
//全部展开所有结点
TreeView1.FullExpand;
//刷新TreeView
TreeView1.Refresh;
//根结点图标
TreeNode1.ImageIndex:=2;
TreeNode1.SelectedIndex:=2;
//二级接点
for h:=0 to 20 do begin
StrName:=intTostr(h);
TreeNode2:=AddChild(TreeNode1,strName);
TreeNode2.ImageIndex:=0;
TreeNode2.SelectedIndex:=0; //全部展开所有结点
TreeView1.FullExpand;
//刷新TreeView
TreeView1.Refresh;
End
我想在这个TreeNode2上点击鼠标右键,然后执行一过程。怎么实现?
treenode1,treenode2:TTreeNode;
With TreeView1.Items Do
Begin
//增加根接点;
TreeNode1:=Add(nil, '状态');
//全部展开所有结点
TreeView1.FullExpand;
//刷新TreeView
TreeView1.Refresh;
//根结点图标
TreeNode1.ImageIndex:=2;
TreeNode1.SelectedIndex:=2;
//二级接点
for h:=0 to 20 do begin
StrName:=intTostr(h);
TreeNode2:=AddChild(TreeNode1,strName);
TreeNode2.ImageIndex:=0;
TreeNode2.SelectedIndex:=0; //全部展开所有结点
TreeView1.FullExpand;
//刷新TreeView
TreeView1.Refresh;
End
我想在这个TreeNode2上点击鼠标右键,然后执行一过程。怎么实现?
procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);var
AnItem: TTreeNode;
AttachMode: TNodeAttachMode;
HT: THitTests;
begin
if TreeView1.Selected = nilthen Exit;
HT := TreeView1.GetHitTestInfoAt(X, Y);
AnItem := TreeView1.GetNodeAt(X, Y);
if (HT - [htOnItem, htOnIcon, htNowhere, htOnIndent] <> HT) then
begin
if (htOnItem in HT) or (htOnIcon in HT) then AttachMode := naAddChild
else if htNowhere in HT then AttachMode := naAdd else if htOnIndent in HT then AttachMode := naInsert;
TreeView1.Selected.MoveTo(AnItem, AttachMode);
end;
end;
var
tnSelected: TTreeNode;
tvTemp: TTreeView;
begin
tvTemp := Sender as TTreeView;
tnSelected := tvTemp.Selected; // 这个就是被单击的节点
ShowMessage(tnSelected.Text);
end;
var
SelNode:TTreeNode;
begin
SelNode := TreeView.Selected;
if SelNode <> nil then
begin
MyProcess(SelNode.Text);
end;
end;