Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.12;
Скачать: CL | DM;

Вниз

В чём я не прав?   Найти похожие ветки 

 
neXt ©   (2002-12-04 09:06) [0]

Есть два проекта:
- Test.exe
- MyPackage.bpl
пытаюсь из Test.exe создать форму находящуюся в MyPackage.bpl. Делаю так:
в MyPackage.bpl в секции инициализации

initialization
begin
RegisterClass(TFormInPackage);
end;

где TFormInPackage - это класс формы, зашитой в package.
А в Test.exe при необходимости поднять форму из package выполняю следующий код


procedure TForm1.Button1Click(Sender: TObject);
type
TFormClass = class of TForm;
var
F: TFormClass;
P: TPersistentClass;
begin
LoadPackage("MyPackage.bpl");
P := GetClass("TFormInPackage");
F := TFormClass(P);
F.Create(Application).Show;
end;

Здесь GetClass возвращает nil. Причём, MyPackage.bpl в память загружается, и если поставить точку прерывания на инициализацию юнита, в котором находится TFormInPackage то отладчик туда приходит, то есть RegisterClass(TFormInPackage) отрабатывает успешно. И ещё, если пытаться в GetClass передать имя класса, реализованного в exe, то всё работает.
Вот я и спрашиваю - в чём я не прав?


 
Игорь Шевченко ©   (2002-12-04 09:28) [1]

http://www.delphikingdom.com/mastering/plugins.htm


 
neXt ©   (2002-12-04 09:32) [2]

это не совсем то, о чём я спрашивал


 
neXt ©   (2002-12-04 09:42) [3]

собственно, то что я пытаюсь делать, по смыслу, соответствует примеру, описанному в вашей ссылке
RegisterClass - добавляет, при загрузки пакета, класс в список зарегистрированных классов, а GetClass - извлекает из списка.


 
Игорь Шевченко ©   (2002-12-04 10:08) [4]

Не соответствует :-)
Там сделан собственный механизм регистрации классов.


 
neXt ©   (2002-12-04 10:25) [5]

отвечаю сам себе.
при сборке обоих проектов нужно чтобы они ссылались на один Classes, ибо Classes.RegisterClass в bpl-ке при её инициализации, вёл свой реестр зарегистрированных классов недоступный из exe.
Для нормальной работы достаточно было поставить в для Exe - шника Options->Packages-> включить "Build with runtime packages" и в строке ниже указать один только мой пакет.


 
Игорь Шевченко ©   (2002-12-04 10:39) [6]

neXt © (04.12.02 10:25)

Упс! Я думал, это уже сделано...


 
neXt ©   (2002-12-04 10:40) [7]

:) тупанул, сори



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

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

Наверх




Память: 0.48 MB
Время: 0.018 c
1-36163
Yurko
2002-12-02 03:44
2002.12.12
Pointer => HBITMAP


4-36493
Mantic0re
2002-10-27 05:27
2002.12.12
Как на АПИ - Мемо реализовать?


14-36337
Ketmar
2002-11-16 19:15
2002.12.12
господа lj-шники, а кто меня поможет туда попасть?


1-36104
nikolo
2002-12-03 10:20
2002.12.12
Нужен Fast Report (free)


14-36370
Basilio
2002-11-21 12:15
2002.12.12
Блин, где логин?