Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.10;
Скачать: CL | DM;

Вниз

ShowModal   Найти похожие ветки 

 
Сергей С ©   (2004-02-01 15:58) [0]

Здравствуйте мастера
Приложение загружает Dll с формой -
приложение:
type
TShowForm = procedure(hApp: THandle);
var
ShowForm: TShowForm;
...
hLib:= LoadLibrary("PROJECT2.DLL");
ShowForm:= TShowForm(GetProcAddress(hLib, "SHOWFORMPROC"));
ShowForm(Application.Handle);
FreeLibrary(hLib);

библиотека:
exports ShowForm name "SHOWFORMPROC";
...
procedure ShowForm(hApp: THandle);
begin
Application.Handle:= hApp;
Form2:= TForm2.Create(Application);
Form2.ShowModal;
Form2.Free;
end;

А как при закрытии "Dll-окна" освободить память, занимаемую объектом
формы и выгрузить Dll, если окно открывается в немодальном режиме.


 
Saracin ©   (2004-02-01 16:08) [1]

могу посоветовать такую тему:
1. Закрытие окна.
в форме которая в dll , на OnClose делай Action := caFree;
SendMessage(ForminDLL.Parent.Handle,USR_DllFormClosed,0,0);
2. В Главном приложении сделай обработку сообщения USR_DllFormClosed типа if(больше нет окон из этой dll) then FreeLibrary(hLib);

только тебе придется вести список окон созданных из соответствующей dll. и имено пустату этого списка ты проверяешь в вышеуказаном if"e.
если не все окна закрыты и ты сделаешь FreeLibrary, то они соответственно закруются автоматом :)

С Уважением Saracin.



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

Текущий архив: 2004.02.10;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.019 c
3-29270
kaif
2004-01-17 00:37
2004.02.10
IBGuardian и Yaffil


3-29268
DimaF
2004-01-07 02:31
2004.02.10
Подскажите под что написать


1-29314
elected
2004-01-30 00:09
2004.02.10
Как сделать виртуальный файл.


14-29567
HermitAlex
2004-01-20 13:36
2004.02.10
Обучение игры в бильярд


3-29271
Boroda Oleg
2004-01-16 21:03
2004.02.10
Господа, помогите с freeIBComponent разобраться. Крыша едет :((