Форум: "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.014 c
1-79392           Galina                2002-02-09 12:56  2002.02.25  
Помогите создать массив компонентов.


1-79357           petyun                2002-02-08 13:37  2002.02.25  
клавиши вправо-влево в ListBoxe


1-79360           DJ X                  2002-02-03 16:13  2002.02.25  
---|Ветка была без названия|---


14-79467          Kozhanov              2002-01-10 12:18  2002.02.25  
Создание интерпретаторов


1-79379           Grim Rider            2002-02-08 17:23  2002.02.25  
Как писать ActiveX DLL на Delphi?