描述
窗体上需要放置一个TPopupActionBar组件。下面的代码会创建一个动作管理器组件(action manager component),并为其某些属性分配一个图像列表。然后,把菜单并将其分配给窗体的PopupMenu属性。这时,右键单击窗体就会显示弹出菜单。
代码
procedure TForm1.FormCreate(Sender: TObject);
var
Images: TImageList;
Image: TBitmap;
ActionManager: TActionManager;
Option1, Option2: TMenuItem;
begin
// 显示一个信息
ShowMessage('窗体上右键单击可以显示自定义菜单');
// 创建一个图像列表
Images := TImageList.Create(self);
Images.Height := 32;
Images.Width := 32;
try
Image := TBitmap.Create;
Image.Height := 32;
Image.Width := 32;
Image.Canvas.Font.Name := 'Times New Roman';
Image.Canvas.Font.Size := 22;
Image.Canvas.TextOut((Image.Width - Image.Canvas.TextWidth('1')) div 2, 0, '1');
Images.Add(Image, nil);
finally
Image.Free;
end;
// 创建一个动作管理器,并将图像列表进行属性指定
ActionManager := TActionManager.Create(self);
ActionManager.DisabledImages := Images;
ActionManager.LargeDisabledImages := Images;
ActionManager.LargeImages := Images;
// 添加一些菜单项
Option1:= TMenuItem.Create(self);
Option1.Caption := 'New';
PopupActionBar1.Items.Add(Option1);
Option2:= TMenuItem.Create(self);
Option2.Caption := 'Save';
PopupActionBar1.Items.Add(Option2);
//让弹出菜单成为窗体的弹出菜单
Form1.PopupMenu := PopupActionBar1;
end;