Главная страница
    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.45 MB
Время: 0.005 c
3-26005
Yuraz
2002-04-15 16:40
2002.05.09
Мастера, помогите, как сделать выборку 10 случайных записей с пом


1-26151
Punk
2002-04-25 06:06
2002.05.09
PageControl


3-26025
Sergant
2002-04-16 14:50
2002.05.09
Ошибка при Query.Close в MS SQL


4-26293
Ted
2002-03-06 09:57
2002.05.09
Помогите, плиз.......отключить локальные винты


1-26161
Varg
2002-04-24 18:32
2002.05.09
При Запуске - только иконка в трее.





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