Bonjour,
Après de pénible recherche, j'ai découvert comment obtenir un équivalent de OnShow / OnHide d'une TForm sur une TFrame.
Ce n'est pas intuitif donc j'en profite pour vous le partager.
Source / Exemple :
uses
Forms, Dialogs, Classes, Controls, StdCtrls, Windows, Messages;
type
MaFrame = class(TFrame)
private
_OnShow : TNotifyEvent;
_OnHide : TNotifyEvent;
procedure _SetOnShow(ponshow: TNotifyEvent);
procedure _SetOnHide(ponhide: TNotifyEvent);
procedure FrameOnShowHide(var M: TMessage); message CM_SHOWINGCHANGED;
published
property OnShow : TNotifyEvent write _SetOnShow;
property OnHide : TNotifyEvent write _SetOnHide;
end;
implementation
procedure MaFrame._SetOnShow(ponshow: TNotifyEvent);
begin
_OnShow := ponshow;
end;
procedure MaFrame._SetOnHide(ponhide: TNotifyEvent);
begin
_OnHide := ponhide;
end;
procedure MaFrame.FrameOnShowHide(var M: TMessage);
begin
inherited;
if Showing then // onShow
if Assigned( _OnShow ) then
_OnShow( Self )
else // onHide
if Assigned( _OnHide ) then
_OnHide( Self );
end;
Conclusion :
Voila, c'est pas grand chose et ça peut être utile.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.