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

Вниз

Плагины и 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
14-26247
Baz
2002-04-02 06:39
2002.05.09
У меня со зрением что-то?


1-26185
AlexKniga
2002-04-24 16:26
2002.05.09
Разница м/у моим любимым TP7 и Delphi


4-26309
BlackLord
2002-02-17 17:07
2002.05.09
Перезагрузка и выход Windows 9x, Win2000, и т. д.


4-26287
ted
2002-03-06 13:33
2002.05.09
Как получить IP адрес???


3-26022
VAleksey
2002-04-15 11:21
2002.05.09
Потомки TField





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский