Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
ВнизХочу создать формочку из bpl Найти похожие ветки
← →
Oleon © (2004-11-17 17:39) [0]создал bpl
в ней одна формочка...
в ней в секции initialization пишу
RegisterClass( TForm1 );
ShowMessage("FFFF");
Потом когда в приложении делаю
LoadPackage("Package1.bpl");
FindClass("TForm1");
он мне показывает FFFFF
а потом пишет, что класс TForm1 не найден...
почему такое может быть?
ведь если показывает FFFF то по идее дожна была и класс зарегистрировать?
Спасибо.
← →
Shaman_Naydak (2004-11-17 19:40) [1]у тя и пакет и приложение должно компилироваться с включенной галочкой "использовать пакеты". Для того, чтобы на 2их использовалась одна и та же копия vclx.bpl
соответственно
← →
Oleon © (2004-11-18 12:22) [2]А можно так сделать, чтобы все bpl хранилась в базе.
Во время запуска модуля брались оттуда и уже выполнялось LoadPackage...
или так нельзя.
Т.е. чтобы в exe не прописывалось какие bpl я ему подсуну...
← →
Amoeba © (2004-11-18 12:52) [3]
> Oleon © (18.11.04 12:22) [2]
> А можно так сделать, чтобы все bpl хранилась в базе.
> Во время запуска модуля брались оттуда и уже выполнялось
> LoadPackage...
Н а момент загрузки BPL должна находиться на диске, а как она туда попадет - дело 10-е.
← →
SiJack © (2004-11-18 14:56) [4]Доброго времени суток!
Не ответите и на мой вопрос связанный с bpl
Соответственно создаю проек с пустой формой, потом засовываю
ее в пакет компилю получаю bpl. В моем проекте загружаю bpl. Это понятно.
Вопрос: теперь чтобы показать форму нужное ее создать. Я просто перед показом ее проверяю созданаона или нет если нет то создаю.
Может это не совсем правильно ? Подскажите
← →
Amoeba © (2004-11-18 15:08) [5]
> SiJack © (18.11.04 14:56) [4]
Задай свой вопрос в новой ветке, а то его здесь могут и не увидеть.
← →
Oleon © (2004-11-19 12:30) [6]Нет, я понимаю, что она на диске должна находиться...
Но как так сделать, чтобы exe-шник не знал какую ему bpl подсунут...
я так попробовал подгрузить отвлеченную bpl, а в этом bpl в одной из форм в секции Initialization прописал RegisterClass( TForm1 )
LoadPackage прошел нормально, но вот из приложения это зарегистрированный класс не находится...
это можно как-то побороть или это вообще неправильный подход?
спасибо.
← →
Виктор © (2004-11-19 15:14) [7]Покажи код. У меня работает проект который загружает формы из bpl и показывает и модально и не модально на закладках PageControl-a. Поделюсь опытом и ссылками по которым шагал на пути к познанию.
← →
Oleon © (2004-11-19 17:23) [8]Виктор, я же показал вроде в первом посте.
Самое простое пишу в проекте
LoadPackage("Primer.bpl")
в самой bpl одна формочка, проект о ней не знает...
в той формочке, которая находится в bpl в секции инитиализайтион пишу :
initialization
RegisterClass(TForm1);
ShowMessage("Проверяем выполняется ли");
Так вот ShowMessage сообщение выходит у меня...значит код выполняется...
но когда я после LoadPackage
пишу FindCLass(TForm1), то этот класс не находится...
как это можно сделать правильно?
Если дадите ссылки буду признателен сильно.
← →
Виктор © (2004-11-21 14:27) [9]Вот ссылки по которым я начинал разработку:
http://delphi.olympus.ru/dk/mastering/m001.htm
http://www.delphikingdom.com/asp/viewitem.asp?UrlItem=/mastering/plugins01.htm
А по конретной строчке в твоей программе я бы посоветовал бы сделать как это работает у меня:
TChildFormClass = class of TChildForm;
private
FChildForm: TChildForm;
begin
TransModuleHandle := LoadPackage(FileLibName);
ChildFormClass := TChildFormClass(FindClass(ChildFormClassName));
FChildForm:=ChildFormClass.Create(self);
,где
ChildFormClass- класс форм которых я вызываю -TChildFormClass.
ChildFormClassName - имя формы которую вызываю, например:
"TfmTools".
FChildForm- экземпляр формы которой создаю.
Для твоего случая переписать все на TForm не представляет сложности. Успехов.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.034 c