zoukankan      html  css  js  c++  java
  • TMainMenu 类[三] 手动建立菜单(2) : 建立子菜单项

    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Menus;
    
    type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    var
      MyMenu: TMainMenu;
      Item: TMenuItem;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      MyMenu := TMainMenu.Create(Self);
      Self.Menu := MyMenu;
    
      Item := TMenuItem.Create(MyMenu);
      Item.Caption := 'AA';
      MyMenu.Items.Add(Item);
    
      Item := TMenuItem.Create(MyMenu);
      Item.Caption := 'BB';
      MyMenu.Items.Add(Item);
    
      Item := TMenuItem.Create(MyMenu);
      Item.Caption := 'CC';
      MyMenu.Items.Add(Item);
    
    
      {在上面的基础上建立子菜单}
    
      Item := TMenuItem.Create(MyMenu);
      Item.Caption := 'A1';
      MyMenu.Items[0].Add(Item); {此时的 MyMenu.Items[0] 指向 AA 菜单项, 现在是给 AA 添加子项}
    
      Item := TMenuItem.Create(MyMenu);
      Item.Caption := 'A2';
      MyMenu.Items[0].Add(Item);
    
    
      Item := TMenuItem.Create(MyMenu);
      Item.Caption := 'A21';
      MyMenu.Items[0][1].Add(Item); {此时的 MyMenu.Items[0][1] 指向 A2 菜单项, 现在是给 A2 添加子项}
    
      Item := TMenuItem.Create(MyMenu);
      Item.Caption := 'A22';
      MyMenu.Items[0][1].Add(Item);
    end;
    
    end.
    
    效果图:



    用另一方法实现同一效果, 似乎更有逻辑.
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Menus;
    
    type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    var
      MyMenu: TMainMenu;
      Item: TMenuItem;
    
    procedure TForm1.FormCreate(Sender: TObject);
    var
      Itemd: TMenuItem;
    begin
      MyMenu := TMainMenu.Create(Self);
      Self.Menu := MyMenu;
    
      Item := TMenuItem.Create(MyMenu);
      Item.Caption := 'AA';
      MyMenu.Items.Add(Item);
    
        Itemd := TMenuItem.Create(MyMenu); {为了不破坏 Item 的指向, 用 Itemd 建立新对象}
        Itemd.Caption := 'A1';
        Item.Add(Itemd); {此时的 Item 指向 AA 菜单项, 现在是给 AA 添加子项}
    
        Itemd := TMenuItem.Create(Item);
        Itemd.Caption := 'A2';
        Item.Add(Itemd);
    
          Itemd := TMenuItem.Create(Item);
          Itemd.Caption := 'A21';
          Item[1].Add(Itemd); {此时的 Item[1] 指向 A2 菜单项, 现在是给 A2 添加子项}
    
          Itemd := TMenuItem.Create(Item);
          Itemd.Caption := 'A22';
          Item[1].Add(Itemd);
    
      {给 AA 添加子菜单项结束}
    
    
      Item := TMenuItem.Create(MyMenu);
      Item.Caption := 'BB';
      MyMenu.Items.Add(Item);
    
      Item := TMenuItem.Create(MyMenu);
      Item.Caption := 'CC';
      MyMenu.Items.Add(Item);
    end;
    
    end.
    
  • 相关阅读:
    <转>jmeter(十七)目录结构
    <转>jmeter(十六)配置元件之计数器
    <转>jmeter(十五)函数助手
    电商系统处理
    小程序web-view组件
    微信小程序中target与currentTarget
    小程序中navigator和wx.navigateTo,wx.redirectTo,wx.reLaunch,wx.switchTab,wx.navigateBack的用法
    怎么设置登录名 登陆后只能看到和操作一个数据库 这个用户不能看到其他的数据库
    安装和卸载windows服务程序
    sqlserver字符串多行合并为一行
  • 原文地址:https://www.cnblogs.com/del/p/1064231.html
Copyright © 2011-2022 走看看