Форум: "Основная";
Текущий архив: 2002.12.12;
Скачать: [xml.tar.bz2];
ВнизВ чём я не прав? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c