zoukankan      html  css  js  c++  java
  • Delphi动态创建MainMenu和PopupMenu菜单的方法

    procedure TForm1.Button1Click(Sender: TObject);
    var
    MainMenu:TMainMenu;
    MenuItem:TMenuItem;
    begin
    //创建主菜单对象,并设置主窗口的菜单为MainMenu对象
    MainMenu:=TMainMenu.Create(Self);
    Self.Menu:=MainMenu;
    
    //创建MainMenu主菜单的第一级菜单对象 MainMenu.Items.Add
    MenuItem:=TMenuItem.Create(MainMenu);
    MenuItem.Caption:='一级菜单';
    MainMenu.Items.Add(MenuItem);
    
    //创建MainMenu主菜单的第二级子菜单对象 MainMenu.Items[0].Add
    MenuItem:=TMenuItem.Create(MainMenu);
    MenuItem.Caption:='二级菜单';
    MainMenu.Items[0].Add(MenuItem);
    
    //创建MainMenu主菜单的第三级子菜单对象 MainMenu.Items[0].Items[0].Add
    MenuItem:=TMenuItem.Create(MainMenu);
    MenuItem.Caption:='三级菜单';
    MainMenu.Items[0].Items[0].Add(MenuItem);
    // 用Items[0]...这种形式,可以创建 四级、五级直到N级菜单都可以
    MenuItem:=TMenuItem.Create(MainMenu);
    MenuItem.Caption:='四级菜单';
    MainMenu.Items[0].Items[0].Items[0].Add(MenuItem);
    
    end;
    
    //弹出菜单事件
    procedure   TForm1.Button1Click(Sender:   TObject);   
      var   
          pm:   TPopupMenu;   
          mi:   TMenuItem;   
      begin   
          pm   :=   TPopupMenu.Create(self);   
          mi   :=   TMenuItem.Create(self);   
          mi.Caption   :=   '新建(&N)';   
          pm.Items.Add(mi);   
          mi   :=   TMenuItem.Create(self);   
          mi.Caption   :=   '打开(&O)';   
          pm.Items.Add(mi);   
          mi   :=   TMenuItem.Create(self);   
          mi.Caption   :=   '-';   
          pm.Items.Add(mi);   
          mi   :=   TMenuItem.Create(self);   
          mi.Caption   :=   '退出(&X)';   
          pm.Items.Add(mi);   
          mi.OnClick   :=   miClick;   
          Button1.PopupMenu   :=   pm;   
      end;   
      //   在类里定义   
      procedure   TForm1.miClick(Sender:   TObject);   
      begin   
          Close;   
      end;  
    
    在系统菜单中添加自新选项:
    Append(GetSystemMenu(handle,false),MF_SEPARATOR,0,'');
    Append(GetSystemMenu(handle,false),MF_STRING,200,'About(&A)');
    
    WM_SysCommand消息处理函数
    procedure SystemMenuCommand(var Msg:TWMMENUSELECT);message WM_SysCommand;
    procedure TForm1.SystemMenuCommand(var Msg:TWMMENUSELECT);
    begin
    if Msg.IDItem=200 then
    Form2:=TForm2.Create(Application);
    Form2.Show;
    Form2.Update;
    end;
    inherited;
    end;
  • 相关阅读:
    图论
    城市吸引力指数
    bzoj3529(莫比乌斯反演+离线+树状数组)
    强制关闭tomcat
    bzoj2154(莫比乌斯反演)
    等差数列求和模板
    联想的显示屏校准(困难)
    bzoj2301(莫比乌斯反演)
    莫比乌斯反演模版
    菜鸟物流的运输网络(网络流)
  • 原文地址:https://www.cnblogs.com/jijm123/p/12359727.html
Copyright © 2011-2022 走看看