如何给构件添加 MouseLeave 事件呢? 我不明白为何 Borland 的 Delphi 控制不支持 mouse leave 事件.下面是一个简易的例子,它不仅示范了怎样让 TIamge 控制实现 MouseLeave 事件,而且也示范了怎么样建立一个简单的 Delphi 构件. { Delphi 编程新手注意的问题: 本例是一个 Pascal 单元,请用 MyImg.pas 保存此单元.例子中的方法可应用于其它控制,所以你可以用 TLabel 或 TButton 等其它类来代替 TImage. } unit MyImg; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, ExtCtrls; type TMyImage = class(TImage) private FOnMouseLeave: TNotifyEvent; procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE; protected public published property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave; end; procedure Register; implementation procedure Register; begin RegisterComponents('Samples', [TMyImage]); end; procedure TMyImage.CMMouseLeave(var Message: TMessage); begin inherited; if Assigned(FOnMouseLeave) then FOnMouseLeave(Self); end; end.
|