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}
//uses Menus; {我習慣在這裡引用單元, 但 Menus 不行, 它會自動到 interface 區}
var
MyMenu: TMainMenu; {聲明菜單對象 MyMenu}
Item: TMenuItem; {雖然菜單項不止一個, 但可以只聲明一個變量; 因為建立對象後, 上層會統一管理}
procedure TForm1.FormCreate(Sender: TObject);
begin
MyMenu := TMainMenu.Create(Self); {屬主參數定為 Self 就不用想著釋放了}
Self.Menu := MyMenu; {讓主窗口使用這個菜單}
Item := TMenuItem.Create(MyMenu); {屬主給 MyMenu 或 Self 都一樣; 但如果 nil 就要想著手動釋放}
Item.Caption := 'AA'; {設定 Caption 是必要的, 不然會顯示空菜單項}
MyMenu.Items.Add(Item);
Item := TMenuItem.Create(MyMenu); {上一個菜單已被 MyMenu 管理, 可以用 Item 創建其他對象}
Item.Caption := 'BB';
MyMenu.Items.Add(Item);
Item := TMenuItem.Create(MyMenu);
Item.Caption := 'CC';
MyMenu.Items.Add(Item);
end;
end.
效果如下: