在主动控制上模拟F1 kepress以加载帮助系统 - Delphi

时间:2012-02-07 19:14:23

标签: delphi delphi-2010

我们正在向应用程序的工具栏添加一个帮助按钮。

当用户点击此按钮时,我们需要为他们所在的控件加载帮助系统

例如,如果它们位于联系人表单的地址框中,我需要使用其上下文ID加载帮助系统

我正在考虑尝试模仿F1按键,然后处理事物的上下文id元素并加载帮助文件

但是,我不能让它工作,因为它试图加载基于主动控件而不是我所在的帮助的帮助,即联系地址

有办法做到这一点吗?基本上我需要从之前的活动控件发送一个F1按键(假设当前活动的控件是我的工具栏按钮)

我们正在使用Delphi 2010

干杯

2 个答案:

答案 0 :(得分:2)

我认为你需要一个工具按钮OnClick处理程序,它可以像这样简单:

procedure TMyForm.ToolButton1Click(Sender: TObject);
begin
  if Assigned(ActiveControl) then begin
    Application.HelpContext(ActiveControl.HelpContext);
  end;
end;

使这项工作的原因是工具栏上的控件不会成为活动控件。

答案 1 :(得分:2)

您的工具栏出了问题。系统工具栏通常不会获得焦点 - 它永远不是主动控件。如果您使用真实TToolBarTToolButton,则不会出现此问题。即使TSpeedButton也不会有这个问题。使用正确的控制来完成工作。

此外,不要试图“模拟”键盘事件。只需直接致电Application.HelpContext