我正在努力让提示在TActionMainMenuBar中显示,这涉及编程相关内容。我正在使用Delphi XE2。我正在运行时创建菜单,并添加类别和子项,清除菜单也都很顺利。点击菜单项可以正常工作(目前它只是使用操作项目标签显示ShowMessage,但这没问题)。以下是添加新菜单项的代码:
我正在设置操作的提示"Hint"。 我也尝试过分配OnHint,但是OnHint从未被调用过。在浏览菜单时,我根本无法获取那个提示。我已经在所有可以看到的地方将ShowHint设置为True。问题是无论我尝试什么,都无法显示任何菜单提示。如果我能找到它,我可以自己显示它(如果程序不行)。OnHint从未被调用过。如果有人想查看程序,在我的公共DropBox中发布了我完整的菜单程序源代码(Delphi XE2),这是一个尽量缩小的小例子。
function TActionF.NewAction(AParent: TActionClientItem; Caption: String; aTag : integer; ExecuteAction: TNotifyEvent):TActionClientItem;
var
newActionClient : TActionClientItem;
AnewAction : TAction;
begin
newActionClient := TActionClientItem(AParent.Items.insert(AParent.Items.Count));
newActionClient.Caption := Caption; //??
newActionClient.UsageCount := -1; // turn of menu priority stuff for now
AnewAction := TAction.Create(Self);
AnewAction.Tag := aTag;
AnewAction.ImageIndex := -1;
AnewAction.Caption := Caption;
AnewAction.Hint := Caption + 'Action Tag = ' + IntToStr(aTag);
AnewAction.OnHint := acnDoHint; // fixed, could be parameter, but onHint is never called !!??
AnewAction.OnExecute := ExecuteAction; // passed as parameter
newActionClient.Action := AnewAction;
Result := newActionClient;
end;
我正在设置操作的提示"Hint"。 我也尝试过分配OnHint,但是OnHint从未被调用过。在浏览菜单时,我根本无法获取那个提示。我已经在所有可以看到的地方将ShowHint设置为True。问题是无论我尝试什么,都无法显示任何菜单提示。如果我能找到它,我可以自己显示它(如果程序不行)。OnHint从未被调用过。如果有人想查看程序,在我的公共DropBox中发布了我完整的菜单程序源代码(Delphi XE2),这是一个尽量缩小的小例子。
TStatusBar
,并将其AutoHint
属性设置为True
。正如 @Rob 所说,菜单项不会弹出工具提示。 - Ken White