Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.02 c
4-1087908765
Davinchi
2004-06-22 16:52
2004.08.01
Чтение/запись свойств файла через описание его класса в реестре


14-1090060228
VID
2004-07-17 14:30
2004.08.01
Нужен банк который..


3-1089185041
Sergey Vorobyev
2004-07-07 11:24
2004.08.01
Не открывается локальная БД Interbase из сервиса, почему?


4-1087870788
Sirus
2004-06-22 06:19
2004.08.01
Можно ли одну DLL вызывать из двух приложений сразу??


3-1089372558
Sirruf
2004-07-09 15:29
2004.08.01
PickList в TColumnEh




   Наверх