In TCustomlabel the mouse events are messages "CMMouseLeave" etc. you will
need to override these I think...

Regards
Paul McKenzie
Analyst Programmer
SMSS Ltd.

----- Original Message ----- 
From: "Alistair George" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, June 11, 2004 9:10 AM
Subject: [DUG] Control properties mouseenter mouseleave not working (my
modifiedcontrol)


> Here we go again............
> Why cant I get the following mouseenter mouseleave to work? Is it an
inheritance
> problem please?
>
> unit BlinkLbl;
>
> interface
>
> uses
>   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
>   Forms, Dialogs, StdCtrls, ExtCtrls;
>
> type
>   TBlinkLabel = class(TLabel)
>   private
>     FBlink: Boolean; { Make the label blink or not }
>     FBlinkInterval: Word; { Time interval for blinking }
>     FTimer: TTimer; { Standard timer component }
>     FOnBlink: TNotifyEvent; { User defined event }
>     FOnMouseEnter: TNotifyEvent;
>     FOnMouseLeave: TNotifyEvent;
>     procedure SetInterval(Value: Word);
>     procedure SetBlink(Value: Boolean);
>   protected
>     procedure TimerFired(Sender: TObject); dynamic; { Timer event }
>     procedure BlinkEvent; dynamic; { user defined timer event }
>     procedure MouseEnter;
>     procedure MouseLeave;
>   public
>     constructor Create(AOwner: TComponent); override;
>     destructor Destroy; override;
>   published
>     property Blink: Boolean
>       read FBlink
>       write SetBlink default False;
>     property BlinkInterval: Word
>       read FBlinkInterval
>       write SetInterval default 500;
>     property Transparent default True;
>     { User defined event }
>     property OnBlink: TNotifyEvent read FOnBlink write FOnBlink;
>     property OnMouseEnter: TNotifyEvent read FOnMouseEnter write
FOnMouseEnter;
>     property OnMouseLeave: TNotifyEvent read FOnMouseLeave write
FOnMouseLeave;
>   end;
>
> procedure Register;
>
> implementation
> {$IFDEF Win32}
> {$R *.R32}
> {$ELSE}
> {$R *.R16}
> {$ENDIF}
>
> constructor TBLinkLabel.Create(AOwner: TComponent);
> begin
>   inherited Create(AOwner);
>
>   FBlinkInterval := 500;
>   FBlink := False;
>   { I don't like default label fonts }
>   { That's why I decided to use my favorite one }
>   Font.Height := -11;
>   Font.Name := 'MS Sans Serif';
>   Font.Size := 8;
>   Font.Style := [fsBold];
>   Transparent := True; { Make the label transparent }
>
>   FTimer := TTimer.Create(Self);
>   FTimer.OnTimer := TimerFired;
>   FTimer.Enabled := False;
>   FTimer.Interval := 500;
> end;
>
> procedure TBLinkLabel.SetInterval(Value: Word);
> begin
>   if FBlinkInterval <> Value then
>   begin
>     FBlinkInterval := Value;
>     FTimer.Interval := Value;
>   end;
> end;
>
> procedure TBLinkLabel.SetBlink(Value: Boolean);
> begin
>   if FBlink <> Value then
>   begin
>     FBlink := Value;
>     FTimer.Enabled := Value;
>   end;
>  { Prevent label from being invisible
>    When the blink becomes off }
>   if not FTimer.Enabled then
>     Visible := True
> end;
>
> procedure TBLinkLabel.TimerFired(Sender: TObject);
> begin
>   BlinkEvent; { Fire up user defined event }
>   visible := not visible;
> end;
>
> { User defined event that will be called }
>
> procedure TBLinkLabel.BlinkEvent;
> begin
>   if Assigned(FOnBlink) then
>     FOnBlink(Self);
> end;
>
> destructor TBLinkLabel.Destroy;
> begin
>   FTimer.free;
>   inherited Destroy;
> end;
>
> procedure TBLinkLabel.MouseEnter;
> begin
>   if Assigned(FOnMouseEnter) then FOnMouseEnter(Self);
> end;
>
> procedure TBLinkLabel.MouseLeave;
> begin
>   if Assigned(FOnMouseLeave) then FOnMouseLeave(Self);
> end;
>
>
> procedure Register;
> begin
>   RegisterComponents('Yusas', [TBlinkLabel]);
> end;
>
> end.
>
>
> _______________________________________________
> Delphi mailing list
> [EMAIL PROTECTED]
> http://ns3.123.co.nz/mailman/listinfo/delphi


_______________________________________________
Delphi mailing list
[EMAIL PROTECTED]
http://ns3.123.co.nz/mailman/listinfo/delphi

Reply via email to