不改变Hint属性本身.
我试过捕捉CM_SHOWHINT,但这个事件似乎只是来了
形式,但不是组件本身.
插入CustomHint也不起作用,因为它需要文本
来自Hint属性.
我的组件是TCustomPanel的后代
这是我正在尝试做的事情:
procedure timageBtn.WndProc(var Message: TMessage);begin if (Message.Msg = CM_HINTSHOW) then PHintInfo(Message.LParam)^.HintStr := 'CustomHint';end;
我在互联网上找到了这个代码,不幸的是它不起作用.
解决方法 CM_HINTSHOW确实正是您所需要的.这是一个简单的例子:type Tbutton = class(Vcl.StdCtrls.Tbutton) protected procedure CMHintShow(var Message: TCMHintShow); message CM_HINTSHOW; end; TMyForm = class(TForm) button1: Tbutton; end;....procedure Tbutton.CMHintShow(var Message: TCMHintShow);begin inherited; if Message.HintInfo.HintControl=Self then Message.HintInfo.HintStr := 'my custom hint';end;
问题中的代码无法调用inherited,这可能是失败的原因.或者类声明省略了WndProc上的overrIDe指令.无论如何,我在这个答案中的方式更清晰.
总结以上是内存溢出为你收集整理的拦截delphi上的提示事件全部内容,希望文章能够帮你解决拦截delphi上的提示事件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)