Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];

Вниз

Еще вопрос по форме в 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 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.044 c
2-1175196193
Riiid
2007-03-29 23:23
2007.04.22
Что в проекте испльзовал?


10-1131373342
Gugle
2005-11-07 17:22
2007.04.22
Сортировка в Exel


15-1174932331
Eraser
2007-03-26 22:05
2007.04.22
Шрифт Anastasia Script


3-1170513670
Itonix
2007-02-03 17:41
2007.04.22
Разница в компонентах


15-1174894815
Kolan
2007-03-26 11:40
2007.04.22
Ищу иконку, &amp;laquo;+&amp;raquo;





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский