![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Здравствуйте!
Каждый раз при вызове OleCreatePropertyFrame система автоматически создает объект TActiveXPropertyPage, соответственно у ComServ увеличивается счетчик ObjectCount. Необходимо как-то сделать, чтобы после закрытия странички свойств этот объект корректно разрушался и счетчик ObjectCount уменьшался. Подскажите пожалуйста, как это можно сделать или как-то обойти эту проблему? код вызова странички свойств примерно такой: Код:
procedure TXXX.ShowPropertyPage;
procedure CoFreeMem(P: Pointer);
begin
if P <> nil then CoTaskMemFree(P);
end;
var
Unknown: IUnknown;
Pages: TCAGUID;
begin
OleCheck(GetPages(Pages));
try
if Pages.cElems > 0 then
begin
Unknown := Self;
OleCheck(OleCreatePropertyFrame(GetActiveWindow, 16, 16,
nil,
1, @Unknown, Pages.cElems, Pages.pElems,
GetSystemDefaultLCID, 0, nil));
end;
finally
CoFreeMem(pages.pElems);
end;
end; |
|
#2
|
||||
|
||||
|
Aristarh Dark, не нашел функции OleCreatePropertyFrame Занятно....
|
|
#3
|
|||
|
|||
|
С проблемой удалось разобраться. Как выяснилось, проблема в VCL
Код:
destructor TActiveXPropertyPage.Destroy; begin FPropertyPageImpl.FPropertyPage.Free; FPropertyPageImpl.Free; end; Не вызывается inherited destroy |