得到焦点,应该是触发CM_ENTER消息。
而失去焦点,应该触发CM_EXIT消息。
你写两个消息响应函数,就可以了。

解决方案 »

  1.   


    添加:procedure WmSetFocus(const Message:TMessage);message WM_SETFOCUS;procedure WmKillFocus(const Message:TMessage);message WM_KILLFOCUS;处理过程!
      

  2.   

    也可对控件的事件进行编程,有onenter和onexit
      

  3.   

    const 换成  var 吧!
      

  4.   

    to chechy,enlightenment:
      可以具体点吗?我不是只对一个控件使用,我是想在一个form中,多个Tedit,TComboBox,当其中某个得到焦点时,颜色变化,失去时又复原.
      你们所说的,具体如何能做到呢?
    to lliuxxingw:
      那样要每个控件中都写,很多就不好玩了!
      

  5.   

    不难的,因为这些控件都有OnEnter和OnExit事件。将这些控件的OnEnter事件都连接到同一个OnEnter函数,将OnExit事件也连接上同一个OnExit事件,就简单了。
    我写给你,
    type
      THackControl = class(TControl);procedure TForm1.DoOnEnter(Sender: TObject);
    begin
      FOldColor := THackControl(Sender).Color;  // OldColor事先需要定义。
      THackControl(Sender).Color := clYellow;
    end;procedure TForm1.DoOnExit(Sender: TObject);
    begin
      THackControl(Sender).Color := FOldColor;
    end;
      

  6.   

    先谢chechy,我试试,一会给分!
      

  7.   

    谢谢checky,成功了,以前我都是一个一个的设,那样好累,后来自己做了一个过程,但只能实现onenter的情况,却不能实现onexit,现在剩事多了!再次感谢checky!
    问checky一个问题:
      你是搞软件开发的吧,主要用delphi吗?在什么地方工作?我很想交你这个朋友!
      

  8.   

    谢谢checky,成功了,以前我都是一个一个的设,那样好累,后来自己做了一个过程,但只能实现onenter的情况,却不能实现onexit,现在剩事多了!再次感谢checky!
    问checky一个问题:
      你是搞软件开发的吧,主要用delphi吗?在什么地方工作?我很想交你这个朋友!
      

  9.   

    1、我搞软件开发,但是也搞一些研究。
    2、我不用Delphi
    3、在杭州。