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;
  • 相关阅读:
    【DFS】算24点
    【位运算】【BFS】移动玩具
    【并查集】【DFS】搭桥
    shell脚本编写informix数据库中表的导入和导出
    利用springloaded进行java jar&class的动态替换
    利用springloaded进行java class动态替换
    ActiveMq unsupported major.minor version 52.0
    oracle主键修改&设置某一字段可以为null
    XStream将XML转javaben,出现多余的tag,导致出错
    oracle:the password has expired
  • 原文地址:https://www.cnblogs.com/jijm123/p/12359727.html
Copyright © 2011-2022 走看看