AddModuleUnloadProc, процедура
Синтаксис
procedure AddModuleUnloadProc(Proc : TModuleUnloadProc);
procedure ВашаПроцедура(HInstsnce: THandle);
begin ... end;
AddModuleUnloadProc(ВашаПроцедура);
Описание
Delphi ведет список пакетов, из которых состоит приложение, Когда Delphi выгружает
пакет, вызывается серия процедур выгрузки каждой из которых передается дескриптор
экземпляра библиотеки DLL, Программист может добавить собственную процедуру
в начало этого списка, передав ее адрес процедуре AddModuleUnloadProc. При завершении
приложения Delphi, в том числе, вызовет и пользовательскую процедуру выгрузки
исполняемого модуля.
AddModuleUnloadProc - это реальная процедура.
Ошибки
Советы и приемы
Пример
// Графический сервер управляет графическими ресурсами. // Когда приложение загружает графический ресурс, сервер // проверяет глубину цвета для ресурса и, если она больше текущей // глубины цвета дисплея, делает копию графического объекта // с глубиной цвета дисплея и возвращает ссылку на новый обьект. // Использование высококачественного алгоритма формирования // изображения дает лучшие результату, чем встроенный // алгоритм подбора цветов Windows. // // При выгрузке модуля, все его ресурсы освобождаются. type PResource = ^TResource;
TResource = record Module: THandle; Resource: TGraphicsObject; case Boolean of True: (Name: PChar;); False: (ID: Longlnt;); end; var List: TList:
procedure ByeBye(HInstance: THandle); var I: Integer; Resource: PResource; begin for I := List.Count-1 downto 0 do
begin Resource := List[I];
if Resource.Module = Hlnstance then
begin List.Delete(I);
Resource.Resource.Free;
Dispose(Resource);
end;
end; end;
initialization List := TList.Create; AddModuleUnloadProc(ByeBye); finalization RemoveModuleUnloadProc(ByeBye); FreeAndNil(List);
end.
Смотрите также
Процедуры RemoveModuleUnloadProc,
UnregisterModule.
Нет комментариев.
Оставить комментарий:
|
|