如何在运行时将一个标准操作添加到ActnPopup.TPopupActionBar组件中?

6
1个回答

6
我会尝试做出这样的翻译:

我会试着这么做:

procedure TForm1.Button1Click(Sender: TObject);
var
  MenuItem: TMenuItem;
  Action: TCustomAction;
begin
  MenuItem := TMenuItem.Create(PopupActionBar1);
  Action := TFileOpen.Create(PopupActionBar1);
  Action.Caption := '&Open...';
  Action.ShortCut := 16463;
  MenuItem.Action := Action;
  PopupActionBar1.Items.Add(MenuItem);

  MenuItem := TMenuItem.Create(PopupActionBar1);
  Action := TFileOpenWith.Create(PopupActionBar1);
  Action.Caption := 'Open with...';
  MenuItem.Action := Action;
  PopupActionBar1.Items.Add(MenuItem);
end;

那么标题和快捷键的值是从哪里来的呢?好问题。这些值来自于操作列表组件编辑器。如果你将标准操作添加到你的操作列表中并查看表单源代码,你就可以获得它们。在那里,你会看到你的操作定义,例如下面这个:

object FileOpen1: TFileOpen
  Category = 'File'
  Caption = '&Open...'
  Hint = 'Open|Opens an existing file'
  ImageIndex = 7
  ShortCut = 16463
end

对于弹出菜单,您不需要提示(对于弹出菜单项?),类别(适用于操作列表)或ImageIndex(您可以定义自己的图像集,因此索引可能不同),您可以将它们留下。实际上,您可以将所有这些都留下,操作仍将被执行(基于您将使用的类),但是您将没有标题或快捷方式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接