我们正在向应用程序的工具栏添加一个帮助按钮。
当用户点击此按钮时,我们需要为他们所在的控件加载帮助系统
例如,如果它们位于联系人表单的地址框中,我需要使用其上下文ID加载帮助系统
我正在考虑尝试模仿F1按键,然后处理事物的上下文id元素并加载帮助文件
但是,我不能让它工作,因为它试图加载基于主动控件而不是我所在的帮助的帮助,即联系地址
有办法做到这一点吗?基本上我需要从之前的活动控件发送一个F1按键(假设当前活动的控件是我的工具栏按钮)
我们正在使用Delphi 2010
干杯
保
答案 0 :(得分:2)
我认为你需要一个工具按钮OnClick
处理程序,它可以像这样简单:
procedure TMyForm.ToolButton1Click(Sender: TObject);
begin
if Assigned(ActiveControl) then begin
Application.HelpContext(ActiveControl.HelpContext);
end;
end;
使这项工作的原因是工具栏上的控件不会成为活动控件。
答案 1 :(得分:2)
您的工具栏出了问题。系统工具栏通常不会获得焦点 - 它永远不是主动控件。如果您使用真实TToolBar
和TToolButton
,则不会出现此问题。即使TSpeedButton
也不会有这个问题。使用正确的控制来完成工作。
此外,不要试图“模拟”键盘事件。只需直接致电Application.HelpContext
。