Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.09;
Скачать: CL | DM;

Вниз

Плагины и MDI формы.   Найти похожие ветки 

 
Дмитрий Баранов   (2002-04-24 15:31) [0]

Вот озадачился:

===mdi.dll==
...
function ExportChild: pointer;
begin
Form2:=TForm2.Create(Application);
result:=@Form2;
end;
{ Form2 должна быть MDIChild }
...
exports
ExportChild;

===Parent===
// сканируем каталог с плагинами, находим в нем все dll ->
// LoadLibrary ->
// из каждой dll вызываем ExportChild:
type
TFunc = function: pointer;
...
var Func: TFunc;
var H : THandle;
...
H:=LoadLibrary("mdi.dll");
if (H = 0) then
begin
error();
exit;
end;
@Func := GetProcAddress(H, "ExportChild");
P:=Func();
MDI:=TForm(P);

Так вот, форма из Dll создается, если ее флаг FormStyle - fsNormal.
Если fsMDIChild (что в design-time его выставлять, что в Run-time менять) - возбуждается exception EInvalidOperation с сообщением "Cannot create form. No MDI forms are currently active".

А мне вот позарез нужны MDI :) Чего делать?


 
Игорь Шевченко   (2002-04-24 15:36) [1]

День добрый,

Проще всего перейти на пакеты (BPL)
Если не получается, то передавать Application и Screen в DLL.

С уважением,


 
Дмитрий Баранов   (2002-04-24 15:40) [2]

Там ведь один хрен в dll пишу

Application целиком? Или достаточно его хэндл?


 
Дмитрий Баранов   (2002-04-24 15:41) [3]

На первую строчку не обращайте внимания :) Забыл стереть :)


 
Игорь Шевченко   (2002-04-24 15:53) [4]

День добрый,

Да, целиком, так как ошибка выдается, если Application.MainForm = nil или Application.MainForm.FormStyle <> fsMDIForm

С уважением,


 
ZZ   (2002-04-24 16:08) [5]

Вроде на Королевстве Дельфи была статья на эту тему. Поищи.. ( http://www.delphikingdom.com ).
Там как раз Application и передается (по моему).


 
Дмитрий Баранов   (2002-04-24 16:09) [6]

Большое спасибо, заработало.



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

Текущий архив: 2002.05.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
4-26288
AlexMey
2002-03-05 12:07
2002.05.09
Не подскажите с чего начать изучение Win API на Delphi?


1-26179
Ihor
2002-04-24 18:20
2002.05.09
TIniFile


1-26079
Bocvfy
2002-04-26 12:56
2002.05.09
ICQSMS.DLL


1-26048
Саша
2002-04-24 10:38
2002.05.09
добавить свойство к форме


1-26121
MegaVolt
2002-04-24 10:31
2002.05.09
---|Ветка была без названия|---