Форум: "Основная";
Текущий архив: 2009.12.20;
Скачать: [xml.tar.bz2];
ВнизDestroy в интерфейсе не вызывается? Найти похожие ветки
← →
Cobalt © (2008-12-19 18:05) [0]Сделал свой наследник TInterfacedObject, исполняющий мой интерфейс.
У этого класса есть поле - фрейм.
Я хочу освобождать фрейм при уничтожении моего наследника, перекрыл деструктор, поставил в нем брек-пойнт, но остановки в нем не происходит.
Может кто объяснить - почему?
Ведь TInterfacedObject вызывает-таки Destroyfunction 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 вся ветка
Форум: "Основная";
Текущий архив: 2009.12.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c