![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Создание самоуничтожающегося объекта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 |