我在Delphi中安装了一个控件,它没有提供键盘按键消息,但是我想在此控件上按回车键时,执行我自己的处理并屏蔽调此控件默认的处理,我该如何做,能否给格例子程序?
谢谢!

解决方案 »

  1.   

    有源代码吗?有就直接修改它,如果没有的话就挤成一个新的控件类出来,然后:
    published
      property OnKeyDown;
      property OnKeyPress;
      property OnKeyUp;
    end;把被屏蔽的事件重新声明出来就可以了。
    因为如果你的控件能够接受键盘消息,那么必然是从TWinControl继承下来的,而按键事件在TWinControl里就定义了。
      

  2.   

    我用的控件不是基于VCL的组件,在它的事件中看不到键盘事件.能否截获Windows对此控件的消息,我能截获消息,可是把所有此窗体上的消息都截获了,我只想截获此控件的消息,我的代码如下:
     在FormCreate中,设置Application.OnMessage:=MyApp;
    声明MyApp如下;MyApp(var Msg:TMsg;var Handled:Boolean);
    在MyApp中对消息进行处理,问题我用if (msg.hwnd=MyControl.Handle)来判断是否是我的控件的消息时,好像不起作用,能否在MyApp中加入一个参数,如:Handle:HWND;来判断消息属于的对象.
      

  3.   

    问题已经解决
    我在Enter时间中加入Application.OnMessage:=MyApp;
    在Exit事件中设为nil就可以了,散分!