Вниз
Скачать: CL | DM;

Destroy в интерфейсе не вызывается?   Найти похожие ветки 

 
Cobalt ©   (2008-12-19 18:05) [0]

Сделал свой наследник  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;


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

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


 
Cobalt ©   (2008-12-19 20:47) [2]

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



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.007 c
15-1256164130
El
2009-10-22 02:28
2009.12.20
Праздник культуры


1-1229431109
Zilog
2008-12-16 15:38
2009.12.20
Как закрыть не своё диалоговое окно?


2-1256941705
_
2009-10-31 01:28
2009.12.20
PChar -> String


2-1257184353
virtual dir
2009-11-02 20:52
2009.12.20
InProcServer32


2-1257399696
Drowsy
2009-11-05 08:41
2009.12.20
Запрос на создание процедуры в IBase.




   Наверх