我想用RzGroupBar实现一些功能,静态添加我会做,但是我现在想做动态的,比如,我右键窗体,有新建主菜单和新建子菜单两项,当点击新建主菜单时,弹出一个窗体,上面有一个EDIT,要求输入主菜单的名字,点击确定后新建主菜单,当选择新建子菜单时,弹出窗体有两个EDIT,一个要求输入子菜单名字,另一个要求输入子菜单的地址,点击确定后,就添加了子菜单,并把新建的子菜单放在当前的主菜单下,并且点击子菜单的话,就可以打开设置的应用程序。
分数不够的话,我可以再加,希望能给出代码,详细
我想用RzGroupBar实现一些功能,静态添加我会做,但是我现在想做动态的,比如,我右键窗体,有新建主菜单和新建子菜单两项,当点击新建主菜单时,弹出一个窗体,上面有一个EDIT,要求输入主菜单的名字,点击确定后新建主菜单,当选择新建子菜单时,弹出窗体有两个EDIT,一个要求输入子菜单名字,另一个要求输入子菜单的地址,点击确定后,就添加了子菜单,并把新建的子菜单放在当前的主菜单下,并且点击子菜单的话,就可以打开设置的应用程序。
分数不够的话,我可以再加,希望能给出代码,详细
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, RzGroupBar, StdCtrls;
type
TForm1 = class(TForm)
RzGroupBar1: TRzGroupBar;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
Button1: TButton;
procedure N1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure SubItemClick(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
AIndex: Integer;
begin
for AIndex := 0 to RzGroupBar1.GroupCount - 1 do
begin
if RzGroupBar1.Groups[AIndex].Opened then
ShowMessage(RzGroupBar1.Groups[AIndex].Caption);
end;
end;
procedure TForm1.N1Click(Sender: TObject);
var
MainName: String;
Group: TRzGroup;
begin
MainName:= InputBox('请输入主菜单名称:','主菜单:','');
if MainName = '' then
Exit;
Group:= TRzGroup.Create(RzGroupBar1);
Group.Caption:= MainName;
RzGroupBar1.AddGroup(Group);
end;
procedure TForm1.N2Click(Sender: TObject);
var
SubName: String;
AIndex: Integer;
GroupItem: TRzGroupItem;
begin
SubName:= InputBox('请输入子菜单名称:','子菜单','');
if SubName = '' then
Exit;
for AIndex := 0 to RzGroupBar1.GroupCount - 1 do
begin
if RzGroupBar1.Groups[AIndex].Opened then
begin
GroupItem:= RzGroupBar1.Groups[AIndex].Items.Add;
GroupItem.Caption:= SubName;
GroupItem.Selected:= True;
GroupItem.Data:= PAnsiChar('C:\WINDOWS\system32\calc.exe');
GroupItem.OnClick:= SubItemClick;
end;
end;
end;
procedure TForm1.SubItemClick(Sender: TObject);
begin
WinExec(TRzGroupItem(Sender).Data,SW_NORMAL);
end;
end.