请观察TControl的源代码,你会发现CM_MOUSELEAVE和CM_MOUSEENTER这两个消息的,剩下的如何判断鼠标在不在Image中,就是重载TImage加入这两个消息的响应就可以了。实在不明白就看看TLabel的源代码,这个元件弄好了鼠标进入和离开的事件。

解决方案 »

  1.   

    procedure TForm1.ToolButton3MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    begin
       ToolButton1.Indeterminate:=true;
    end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
    ToolButton1.Indeterminate:=false;
    end;
      

  2.   

    迷茫说得对,是可以达到这种效果.
    我还不明白的是属性indeterminate是什么意思?望能解释一下。
    应该给分哟^_^
      

  3.   

    TToolBar本来就有这种功能的。
    在它的属性编辑器中可以设置三个TImageList
    Images           :通常状态下显示的图标
    DisabledImages   :Disable时显示的图标
    HotImages        :光标置于其上时的图标
    设置了HotImages就可以得到你需要的效果。