procedure TMDIFrm.MenuItemsToListView(mMenu: TMenuItem; nNode: TTreeNodes;p_node: TTreeNode); var i: Integer; c_node: TTreeNode; begin for i := 0 to mMenu.Count - 1 do begin if mMenu.Items[i].Caption<>'-' then begin c_node:= nNode.AddChild(p_node,mMenu.Items[i].Caption); c_node.Data:= @mMenu.Items[i].OnClick; end; MenuItemsToListView(mMenu.Items[i],nNode,c_node); //递归 end; end;procedure TMDIFrm.TreeView1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var pro : TNotifyEvent; begin @pro:= TreeView1.Selected.Data; if Assigned(pro) then pro(nil); end;1、递归过程中要向TreeView加入菜单事件2、加入TreeView的MouseUp事件代码问题解决,点击treeview与菜单一致。
var i: Integer;
c_node: TTreeNode;
begin
for i := 0 to mMenu.Count - 1 do
begin
if mMenu.Items[i].Caption<>'-' then
begin
c_node:= nNode.AddChild(p_node,mMenu.Items[i].Caption);
c_node.Data:= @mMenu.Items[i].OnClick;
end;
MenuItemsToListView(mMenu.Items[i],nNode,c_node); //递归
end;
end;procedure TMDIFrm.TreeView1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var pro : TNotifyEvent;
begin
@pro:= TreeView1.Selected.Data;
if Assigned(pro) then pro(nil);
end;1、递归过程中要向TreeView加入菜单事件2、加入TreeView的MouseUp事件代码问题解决,点击treeview与菜单一致。