Вниз
Скачать: CL | DM;

Еще вопрос по форме в DLL   Найти похожие ветки 

← →
Alex_C ©   (2007-04-04 10:37) [0]

Создаю форму в DLL :

вот ф-ция инициализации формы в DLL:

function Init( AppHandle: THandle; )
begin
   Application.Handle := AppHandle;
   ScoreForm := TScoreForm.Create(Application);
ebd;

и далее
procedure ShowForm;
begin
   ScoreForm.Show;
end;

При показе формы по отношению к форме в основной проге, форма из DLL становится как бы Stay on top - поверх, хотя должна быть обычной. Почему?


← →
Сергей М. ©   (2007-04-04 10:40) [1]

Потому что передавать нужно не хэндл объекта Application, а ссылку на сам объект Application.


← →
Alex_C ©   (2007-04-04 13:47) [2]

Ок! Заменил!

function Init( App: TApplication )
begin
  ScoreForm := TScoreForm.Create(App);
ebd;

Теперь окна работают как надо, а вот при выходе из проги вылезает ошибка доступа к адресу 00000000. Из-за чего?


← →
Сергей М. ©   (2007-04-04 13:50) [3]

function Init( App: TApplication )
begin
 Application := App;
 ScoreForm := TScoreForm.Create(Application);
eтd;


← →
clickmaker ©   (2007-04-04 13:52) [4]

*.dpr

procedure DLLMain(dwReason: DWORD);
begin
 case dwReason of
   dll_Process_Attach :;
   dll_Process_Detach :
   begin
     if DllHandle <> 0 then Application.Handle := DllHandle;
   end;
   dll_Thread_Attach  : {Statements here};
   dll_Thread_Detach  : {Statements here};
 end;
end;

begin
 DLLProc := @DLLMain;
end.

Unit

if DllHandle = 0 then begin
   DllHandle := Application.Handle;
   Application.Handle := AppHandle; // from EXE
 end;


← →
Alex_C ©   (2007-04-04 13:58) [5]

Сергей М. : так не очень хорошо! При завершении работы с DLL основное окно проги самопроизвольно сворачивается.

clickmaker: то что надо! Спасибо!


← →
Сергей М. ©   (2007-04-04 14:03) [6]


> При завершении работы с DLL основное окно проги самопроизвольно
> сворачивается.


А на место нужно возвращать оригинальный Application перед выгрузкой !

Неужели это так трудно дотумкать самому ?)


← →
Loginov Dmitry ©   (2007-04-04 20:42) [7]

> А на место нужно возвращать оригинальный Application перед
> выгрузкой !


А еще лучше компильнуть все в пакетами, и не заморачиваться на всякие там Application"ы


← →
Amoeba ©   (2007-04-05 14:49) [8]

А еще лучше, вообще не пихать формы в DLL.


← →
_Аноним   (2007-04-05 15:08) [9]

А еще лучше, вообще не пихать



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

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



Память: 0.47 MB
Время: 0.026 c
15-1175154774
Post_
2007-03-29 11:52
2007.04.22
Иконки..


15-1175089945
oldman
2007-03-28 17:52
2007.04.22
Есть многое на свете, друг Горацио...


2-1175156344
АндрейК
2007-03-29 12:19
2007.04.22
Уроветь TreeView


11-1156503466
GLyK
2006-08-25 14:57
2007.04.22
Установка компонента RxLib


1-1172500673
Степан
2007-02-26 17:37
2007.04.22
Тень от формы




   Наверх