I suspect you need the override directive on MouseEnter/MouseLeave. I am making the assumption there are declared on an ancestor somewhere based on your comments. M
-----Original Message----- From: Alistair George [mailto:[EMAIL PROTECTED] Sent: Friday, 11 June 2004 09:10 To: [EMAIL PROTECTED] Subject: [DUG] Control properties mouseenter mouseleave not working (my modified control) 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
