如何判断表单是否处于帮助模式?

时间:2021-01-30 07:09:16

There's a certain control which I don't have the source to (Steema TTree) it doesn't send a help message when help is requested through the form. (clicking the ? near the X on the dialog, then clicking the TTree)

有一个控件,我没有源(Steema TTree),当通过表单请求帮助时,它不会发送帮助信息。 (单击对话框中X附近的?,然后单击TTree)

I can just call help directly on the form and pass in my own helpmessage, but I don't know whether the form is in help mode.

我可以直接在表单上调用帮助并传入我自己的helpmessage,但我不知道表单是否处于帮助模式。

The form's cursor is acutally 0 even when it has a ? next to it... That I find odd.

表单的光标即使有一个?旁边......我觉得很奇怪。

Anyway, I know I'm hacking my way through this, but I don't care. All I want to know is if there is a way to tell whether the user is requesting help and currently has a ? next to their cursor

无论如何,我知道我正在通过这种方式进行攻击,但我并不在乎。我想知道的是,是否有办法判断用户是否正在请求帮助并且目前有一个?在他们的光标旁边

2 个解决方案

#1


The form's cursor is acutally 0 even when it has a ? next to it... That I find odd.

表单的光标即使有一个?旁边......我觉得很奇怪。

That's because that is your forms cursor

那是因为那是你的表格光标

Try Screen.Cursor that should be the active one.

试试应该是活动的Screen.Cursor。

#2


Torry helped

 procedure wmNCLButtonDown(var Msg: TWMNCLButtonDown); message WM_NCLBUTTONDOWN;
 procedure wmNCLButtonUp(var Msg: TWMNCLButtonUp); message WM_NCLBUTTONUP;

I overrode those functions to set a global variable

我重写了这些函数以设置全局变量

 fHelpMode : Boolean

to true when

真的时候

 if Msg.HitTest = HTHELP then
      fHelpMode := true;

That allowed me to know when if the user was requesting help and I could override a mouse event on the TTree to do my help pop-up.

这让我知道用户何时请求帮助,我可以覆盖TTree上的鼠标事件来执行我的帮助弹出窗口。

#1


The form's cursor is acutally 0 even when it has a ? next to it... That I find odd.

表单的光标即使有一个?旁边......我觉得很奇怪。

That's because that is your forms cursor

那是因为那是你的表格光标

Try Screen.Cursor that should be the active one.

试试应该是活动的Screen.Cursor。

#2


Torry helped

 procedure wmNCLButtonDown(var Msg: TWMNCLButtonDown); message WM_NCLBUTTONDOWN;
 procedure wmNCLButtonUp(var Msg: TWMNCLButtonUp); message WM_NCLBUTTONUP;

I overrode those functions to set a global variable

我重写了这些函数以设置全局变量

 fHelpMode : Boolean

to true when

真的时候

 if Msg.HitTest = HTHELP then
      fHelpMode := true;

That allowed me to know when if the user was requesting help and I could override a mouse event on the TTree to do my help pop-up.

这让我知道用户何时请求帮助,我可以覆盖TTree上的鼠标事件来执行我的帮助弹出窗口。