Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.31;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.014 c
4-100510
Manix
2003-02-02 14:18
2003.03.31
Как перегрузить комп в XP. ExitWindowsEx(EWX_REBOOT or EWX_FORCE,


1-100209
BoDa
2003-03-20 10:32
2003.03.31
Цвет строк в Memo


14-100376
Математик
2003-03-13 11:44
2003.03.31
Определитель матрицы


1-100267
groza
2003-03-18 23:06
2003.03.31
QuickRepoter


9-100135
AXe
2002-10-30 18:58
2003.03.31
А как писать 3Д игры на ДиректХ