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

Вниз

NoModalForm в Dll и Exception   Найти похожие ветки 

 
half_litre   (2004-07-15 12:18) [0]

Ситуация :

ExeNoModalForm(из EXE-ка) вызывает procedure RunNoModalForm
(в DLL-ке), которая создает DllNoModalForm.
//---------------------------------------------
procedure ExeNoModalForm.OnClose(...)
.....
.....
 try
    if (hndlDll<>-1) and (hndlDll>HINSTANCE_ERROR) then begin
       if (@DoneDll<>nil) then DoneDll;
       FreeLibrary(hndlDll);
    end;
 except
 end;
.....
.....
 Action:=caFree;
end
//---------------------------------------------
procedure DoneDll; //(в DLL-ке)

.....
.....
   if DllNoModalForm <>nil then DllNoModalForm.Close;

   Application.Handle:=OldAppHandle;
   Screen:=OldScr;
.....
.....
end;
//---------------------------------------------
procedure DllNoModalForm.OnClose(...)
.....
.....
 Action:=caFree;
end
//---------------------------------------------
Сам трабл :
Если закрыть ExeNoModalForm то все OK.
Если закрыть DllNoModalForm и с небольшой паузой закрыть
   ExeNoModalForm то тоже все OK.
Если закрыть DllNoModalForm и быстро закрыть ExeNoModalForm
   то Exception.

Замечено что если в Dll передовать не Application.Handle а сам
обьект Application во всех ситуация гуд. Но нужен именно
Application.Handle, без него в DllNoModalForm не
срабатывает Hint"ы.

Весь полный текст не привожу (сделаю по необходимости),
уж больно длинный. Всем зарание респект.


 
half_litre   (2004-07-15 12:59) [1]

Народ дайте хоть наводку.(не "на водку")


 
АлексейК   (2004-07-15 13:26) [2]

Если закрыть ExeNoModalForm то все OK.
При открытой DllNoModalForm? Все нормально?
И потом в конкретно ошибка и на какой строчке кода возникает Acces Violation?
И в DLL как формочка то создается.


 
half_litre   (2004-07-15 13:34) [3]

>Если закрыть ExeNoModalForm при открытой DllNoModalForm? Все >нормально?
Точно так

>И в DLL как формочка то создается.:
DllNoModalForm:=TDllNoModalForm.Create(Application);
DllNoModalForm.Show;



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

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

Наверх




Память: 0.47 MB
Время: 0.046 c
3-1089372558
Sirruf
2004-07-09 15:29
2004.08.01
PickList в TColumnEh


9-1082207751
AlexNx
2004-04-17 17:15
2004.08.01
Алгоритм попадания точки


1-1089965306
gdima
2004-07-16 12:08
2004.08.01
exec


11-1077973393
nester
2004-02-28 16:03
2004.08.01
Почему не работает raise?


3-1089279204
Sir John
2004-07-08 13:33
2004.08.01
конфигурация ODBC