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