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.