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

Вниз

Хочу создать формочку из 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.043 c
14-1100269923
AlexG
2004-11-12 17:32
2004.12.05
Что означает возможность форвардинга?


1-1100784772
aglar
2004-11-18 16:32
2004.12.05
Как запустить exe файл?


9-1091708027
vixen
2004-08-05 16:13
2004.12.05
Пересечение отрезков. Реализация физики тел


3-1099303607
denisww
2004-11-01 13:06
2004.12.05
Обьясните пожалуйста как корректировать BD


1-1100878838
hgd
2004-11-19 18:40
2004.12.05
Загрузка hlp