unit UTMemoClignote;

interface
uses

stdctrls,
extctrls,
Graphics,
classes;

type
TMemoClignote=class(Tmemo)
private
Flash:TTimer; //un objet TTimer permettant le clignotement
NbrFlash:integer; //compteur du nombre de clignotements effectués
CouleurActuelle:TColor; //couleur avant clignotement
procedure Clignoter(Sender: TObject); //événement Ontimer du TTimer
protected
procedure
MonClick(Sender: TObject);virtual; //événement OnClick de la classe TmonMemo surchargeable
public
constructor
create(AOwner: TComponent); override;
end;

procedure Register;



implementation

const
MaxFlash=5;
procedure Register;
begin
RegisterComponents
('Perso', [TMemoClignote]);
end;

procedure TMemoClignote.MonClick(Sender: TObject);
//gestionnaire de l'événement OnClick de la classe TMemoClignote
begin
CouleurActuelle:=color;
NbrFlash:=0;
self.color:=clyellow;
Flash.Enabled:=true;
end;

procedure TMemoClignote.Clignoter(Sender: TObject);
//gestionnaire de l'événement Ontimer du TTimer Flash
begin
inc
(NbrFlash);
if visible then visible:=false
else visible:=true;
if NbrFlash > MaxFlash then
begin
color:=CouleurActuelle;
visible:=true;
setfocus;
Flash.Enabled:=false;
end
end
;

constructor TMemoClignote.create(AOwner: TComponent);
begin
inherited;//pour faire créer automatique un Tmemo
Flash:=TTimer.Create(self);
Flash.Enabled:=false;
Flash.Interval:=100;
Flash.OnTimer:= Clignoter; //*** créer l'association du Ontimer et du gestionnaire
self.Color:=clAqua;
self.CouleurActuelle:=Color;
self.OnClick:=MonClick; //*** créer l'association du OnClick et du gestionnaire
end;
end.