Вниз
Скачать: CL | DM;

Импорт класса из 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
4-100505
Acidy
2003-01-26 09:59
2003.03.31
Помогите,плз,с UpdateWindow...


3-100160
td
2003-03-12 23:13
2003.03.31
как сжать таблицу


3-100151
neXt
2003-03-12 16:57
2003.03.31
Timeout BDE


1-100260
Zirus
2003-03-18 11:20
2003.03.31
невидимость форм


1-100294
Step[B.M.]
2003-03-18 23:52
2003.03.31
Как получить количество дней в месяце учитывая высокосные года?




   Наверх