procedure MenuToTreeView(mMenu: TMenu; mTreeView: TTreeView);
procedure pMenuToTreeView(mMenuItem: TMenuItem; mTreeNode: TTreeNode);
var
I: Integer;
vTreeNode: TTreeNode;
begin
for I := 0 to Pred(mMenuItem.Count) do begin
vTreeNode := mTreeView.Items.AddChild(mTreeNode,
StripHotkey(mMenuItem[I].Caption)); //StripHotkey()//除快捷键&
pMenuToTreeView(mMenuItem[I], vTreeNode);
end;
end; { pMenuToTreeView }
begin
mTreeView.Items.Clear;
pMenuToTreeView(mMenu.Items, mTreeView.TopItem);
end; { MenuToTreeView }procedure TForm1.Button1Click(Sender: TObject);
begin
MenuToTreeView(PopupMenu1, TreeView1);
end;
procedure pMenuToTreeView(mMenuItem: TMenuItem; mTreeNode: TTreeNode);
var
I: Integer;
vTreeNode: TTreeNode;
begin
for I := 0 to Pred(mMenuItem.Count) do begin
vTreeNode := mTreeView.Items.AddChild(mTreeNode,
StripHotkey(mMenuItem[I].Caption)); //StripHotkey()//除快捷键&
pMenuToTreeView(mMenuItem[I], vTreeNode);
end;
end; { pMenuToTreeView }
begin
mTreeView.Items.Clear;
pMenuToTreeView(mMenu.Items, mTreeView.TopItem);
end; { MenuToTreeView }procedure TForm1.Button1Click(Sender: TObject);
begin
MenuToTreeView(PopupMenu1, TreeView1);
end;
procedure pMenuToTreeView(mMenuItem: TMenuItem; mTreeNode: TTreeNode);
var
I: Integer;
vTreeNode: TTreeNode;
begin
for I := 0 to Pred(mMenuItem.Count) do begin
vTreeNode := mTreeView.Items.AddChildObject(mTreeNode,
StripHotkey(mMenuItem[I].Caption), mMenuItem[I]); //StripHotkey()//除快捷键&
pMenuToTreeView(mMenuItem[I], vTreeNode);
end;
end; { pMenuToTreeView }
begin
mTreeView.Items.Clear;
pMenuToTreeView(mMenu.Items, mTreeView.TopItem);
end; { MenuToTreeView }procedure TForm1.Button1Click(Sender: TObject);
begin
MenuToTreeView(PopupMenu1, TreeView1);
end;procedure TForm1.TreeView1Click(Sender: TObject);
begin
if not Assigned(TTreeView(Sender).Selected) then Exit;
TMenuItem(TTreeView(Sender).Selected.Data).Click;
end;
2、单击事件用指针好象有问题,你有没有试过?
procedure MenuToTreeView(mMenu: TMenu; mTreeView: TTreeView);
procedure pMenuToTreeView(mMenuItem: TMenuItem; mTreeNode: TTreeNode);
var
I: Integer;
vTreeNode: TTreeNode;
begin
for I := 0 to Pred(mMenuItem.Count) do
if mMenuItem[I].Visible then begin
vTreeNode := mTreeView.Items.AddChildObject(mTreeNode,
StripHotkey(mMenuItem[I].Caption), mMenuItem[I]); //StripHotkey()//除快捷键&
vTreeNode.ImageIndex := mMenuItem[I].ImageIndex;
vTreeNode.SelectedIndex := mMenuItem[I].ImageIndex;
pMenuToTreeView(mMenuItem[I], vTreeNode);
end;
end; { pMenuToTreeView }
begin
mTreeView.Items.Clear;
pMenuToTreeView(mMenu.Items, mTreeView.TopItem);
end; { MenuToTreeView }procedure TForm1.FormCreate(Sender: TObject);
begin
MenuToTreeView(PopupMenu1, TreeView1);
end;