... Public constructor Create(aOwner : TComponent); override; destructor Destroy; override;
constructor TDoubleSMS.Create(AOwner: TComponent); begin inherited Create(AOwner);// ne jamais oublier FTimer := TTimer.Create(self); end; destructor TDoubleSMS.Destroy; begin if FTimer <> nil // inutile ici then FTimer.Free; inherited Destroy;// ne jamais oublier end;
FTimer := TTimer.Create(self);
TDoubleSMS = class(TComponent) private FTermine : TNotifyEvent; FTimer : TTimer; procedure TimerSecondMessage(Sender : TObject); procedure Termine(Sender : TObject); public constructor Create (Aowner: TComponent); override; Destructor Destroy; override; property OnFinish : TNotifyEvent read FTermine write FTermine; end; procedure TDoubleSMS.Termine(Sender : TObject); begin Free; end; procedure TDoubleSMS.TimerSecondMessage(Sender: TObject); begin // bla bla bla if Assigned(FTermine) then FTermine(Self); end;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionNe libérez jamais explicitement un composant dans un de ses propres gestionnaires d'événement ou dans un gestionnaire d'événement d'un composant qu'il possède ou contient.
FreeOnTerminate := True;