![]() |
![]() ![]() ![]() ![]() |
|
Создание самоуничтожающегося объектаDelphi , Компоненты и Классы , Создание компонентСоздание самоуничтожающегося объекта
Оформил: DeeCo
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;
Пример самоуничтожающего объекта в Delphi! Эта реализация предоставляет способ создания объекта, который принимает владение другим объектом и обеспечивает его правильное освобождение, когда самоуничтожающий объект выходит из области видимости. Давайте разберемся с кодом: Интерфейс В этом интерфейсе не определены методы или свойства, но он служит маркером для указания, что класс реализует этот интерфейс. Класс Класс Конструктор и Деструктор Конструктор Деструктор Пример использования В этом примере создается объект Эта реализация предоставляет способ обеспечить правильное освобождение объектов, когда они выходят из области видимости, даже если они не освобождаются явно с помощью В целом, это умелый и эффективный способ управления жизненным циклом объектов в Delphi. Хорошая работа! Создание самоуничтожающегося объекта в Delphi позволяет создавать интерфейс, который автоматически уничтожает связанный с ним объект при уходе из области видимости. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: Создание компонент ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||