Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Destroy в интерфейсе не вызывается? [D7, WinXP]


Cobalt ©   (2008-12-19 18:05:00) 

Сделал свой наследник  TInterfacedObject, исполняющий мой интерфейс.
У этого класса есть поле - фрейм.
Я хочу освобождать фрейм при уничтожении моего наследника, перекрыл деструктор, поставил в нем брек-пойнт, но остановки в нем не происходит.

Может кто объяснить - почему?
Ведь TInterfacedObject вызывает-таки Destroy

function TInterfacedObject._Release: Integer;
begin
 Result := InterlockedDecrement(FRefCount);
 if Result = 0 then
   Destroy;
end;


Мой класс:
 TFireFoxPlugIn = Class(TInterfacedObject, ISaverSettingsPlugIn)
  Protected
    FFrame: TfrmFireFox;
    FVersion: String;
    FHasData: Boolean;
    FCopyCash: Boolean;
  Public
   Constructor Create;
   function Present: WordBool; safecall;
   procedure SaveSettings(Directory: PWideChar; BackUp: WordBool); safecall;
   procedure LoadSettings(Directory: PWideChar; BackUp: WordBool); safecall;
   procedure GetProgramName(out ProgramName: PWideChar); safecall;
   function GetFrame(AParent: TWinControl):TFrame;
   Destructor Destroy; override;
  Published
    Property Version: string read FVersion;
    Property HasData: Boolean read FHasData;
    Property CopyCash: Boolean read FCopyCash;
 end;


Деструктор:
destructor TFireFoxPlugIn.Destroy;
begin
    FreeAndNil(FFrame);
    inherited;
end;


Cobalt   (2008-12-19 20:47:00) [1]

Блин, точно!
Я ж ссылки на него не обнуляю )))


Сергей М.   (2008-12-19 19:50:00) [2]

Приведи фрагменты использования своего объекта


Наверх

Титульная страница Поиск, карта сайта Написать письмо