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

Вниз

Импорт класса из BPL   Найти похожие ветки 

 
distinger   (2003-03-19 14:32) [0]

В BPL описан класс TMyForm производный от TForm (проще говоря храниться форма). Как в exe-шнике динамически подгрузить этот BPL, зарегистрировать класс TMyForm, а затем создать экземпляр TMyForm. (Типа:MyForm:=TMyForm.Create(Application))
Спасибо.


 
REA   (2003-03-19 14:44) [1]

Подгрузить: LoadPackage
Зарегистрировать: А надо ли?
Создать:

TMyFormClass = Class Of TForm;
TGetFormClass = Function: TMyFormClass;

GetFormClass := GetProcAddress("GetFormClass");
FormMetaClass := GetFormClass();
MyForm := FormMetaClass.Create(Application));

--------------
В BPL:

Function GetFormClass: TMyFormClass;
Begin
Result := TMyForm;
End;

Exports
GetFormClass;


 
distinger   (2003-03-19 15:25) [2]

Спасибо. Только Delphi ругается на строку
MyForm := FormMetaClass.Create(Application);
Говорит: "Incompatible types: TForm and TMyFormClass"
(MyForm я как TMyFormClass объявил).
Что я неправильно сделал;


 
distinger   (2003-03-19 15:34) [3]

В BPL:
Function GetFormClass: TMyFormClass;
Begin
Result := TMyForm;
End;


А как надо TMyFormClass в BPL объявлять?


 
distinger   (2003-03-19 15:51) [4]

И еще вопрос:
для чего делается следующее
FormMetaClass := GetFormClass();
и что такое FormMetaClass

Спасибо

P.S. Прошу прощения за назойливость.


 
REA   (2003-03-19 16:15) [5]

>(MyForm я как TMyFormClass объявил).
MyForm: TForm; // Объявим как базовый класс

>А как надо TMyFormClass в BPL объявлять?
В принципе можно и как TFormClass возвращать (если таковой уже описан). А так нужно описание в отдельный можуль вынести, который известен и программе и BPL.

> и что такое FormMetaClass
Указатель на класс формы (метакласс), который создаст экземпляр класса.


 
distinger   (2003-03-19 16:31) [6]

Последний вопрос :)

А где обо все этом в Инете почитать можно, а то у меня тут 6 книг под носом и не в одной ничего не написано.



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

Форум: "Основная";
Текущий архив: 2003.03.31;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.006 c
3-100173
Minva74
2003-03-12 21:15
2003.03.31
Добавление файла в запись БД


14-100435
Anton.
2003-03-14 12:21
2003.03.31
Breakpoint


14-100384
Volly
2003-03-13 11:18
2003.03.31
Изменение интерфейса


1-100282
Behemoth
2003-03-19 12:39
2003.03.31
Как можно сбросить буфер клавиатуры?


1-100327
jen_bond
2003-03-19 22:24
2003.03.31
Работа с файлом формата .wmf





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