Bonjour,
Dans un TmySpeedButton hérité d'un TSpeedButton, je voudrais modifier le comportement de l'évènement OnMouseEnter.
Je crée un TmySpeedButton dont j'aimerais que l'évènement MouseOver soit éludé : Par exemple, qu'il affiche "d'abord" showmessage('interne');.
Donc un survol de mySpeedButton1 avec dans la Formafficherait d'abord 'interne' (modification de OnMouseEnter) puis ensuite 'externe' (code dans l'inpecteur d'objet).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 procedure TForm1.mySpeedButton1MouseEnter(Sender: TObject); begin showmessage('externe'); end;
Actuellement je crée une procedure DoMouseEnter(const Value: TNotifyEvent); virtual; (protected)
Mais comment je la relie à l'évènement d'origine ? J'ai essayé quelque chose dans ce genre là
Si cette base déclarative est bonne (faut-il redéclarer le FOnMouseEnter: TNotifyEvent; et dans le cas contraire ?), comment relie-t-on alors les évènements ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 type TmySpeedButton = class(TSpeedButton) private { Private declarations } FOnMouseEnter: TNotifyEvent; protected { Protected declarations } procedure SetOnMouseEnter(const Value: TNotifyEvent); procedure DoMouseEnter(const Value: TNotifyEvent); virtual; published { Published declarations } property OnMouseEnter: TNotifyEvent read FOnMouseEnter write SetOnMouseEnter; //Au départ "naïvement" property OnMouseEnter: TNotifyEvent read FOnMouseEnter write DoMouseEnter; end;
Cordialement. Gilles
Partager