Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.25;
Скачать: [xml.tar.bz2];




Вниз

Создание MDIChild из DLL 


mikrom   (2001-12-26 09:46) [0]

Помогите плз. Как из длл создать MDIChild окно, из EXE вызывается функция в DLL куда передается Handle главного окна EXE файла, это окно MDI Form, когда пытаюсь вызвать Application.CreateForm(TForm1, Form1) вылетает ексепшен
"Cannot create form. No MDI form active".



McSimm   (2001-12-26 12:19) [1]

Надо в DLL подменить глобальные переменные Application и Screen на значения из приложения, сохранив оригинальные значения, которые надо восстановить перед выгрузкой DLL.



mikrom   (2001-12-26 12:35) [2]

А через Handle нельзя?



McSimm   (2001-12-26 14:16) [3]

Видел варианты подмены:
Application.Handle := HostAppHandle,

Но сам не пробовал, посоветовал то, что делал сам



mikrom   (2001-12-26 14:45) [4]

Спасибо, но вот еще вопрос.
По нажатию на кнопку динамически загружается Dll через LoadLibrary.
Показывается форма, закрывается, но при закрытии exe вылетает ексепшен, InvalidPointerOperation



McSimm   (2001-12-26 14:53) [5]

Ну тут предполагать можно много разного.
Интуиция подсказывает, что форма при закрытии не уничтожается (проверь параметр Action в событии OnClose). Потом, видимо, восстанавливается Application(или Handle) при не уничтоженной форме MDIChild.

Повторюсь, вариантов ошибки может быть много.




Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.25;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.016 c
14-79455          Excel                 2002-01-09 16:31  2002.02.25  
Книги


4-79513           ev                    2001-12-15 19:24  2002.02.25  
Как посмотреть переменные в другой программе?


14-79449          False_Delirium        2002-01-08 05:49  2002.02.25  
Так уж повелось...


7-79480           KLM                   2001-11-15 06:26  2002.02.25  
Смена разрешения монитора


3-79302           Mr.Sane               2002-01-30 12:35  2002.02.25  
TROUBLE SQLEXPLORER