Code: |
type ISelfDestroy = interface; //forget about GUID, if you are not using COM
TSelfDestroy = class(TInterfacedObject, ISelfDestroy) private FObject: TObject; public constructor Create(AObject: TObject); destructor Destroy; override; end;
implementation
constructor TSelfDestroy.Create(AObject: TObject); begin FObject := AObject; end;
destructor TSelfDestroy.Destroy; begin FreeAndNil(FObject); inherited; end;
// So when you use, just do like this...
procedure TForm1.Button1Click(Sender: TObject); var MyObject: TMyObject; SelfDestroy: TSelfDestroy; begin MyObject := TMyObject.Create; SelfDestroy := TSelfDestroy.Create(MyObject); // The MyObject will free automatically as soon as TSelfDestroy // goes out of scope. // Carry on your code here... end; |
Взято с сайтаhttps://www.swissdelphicenter.ch/en/tipsindex
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!