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.