Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-1101207665
Руслана
2004-11-23 14:01
2004.12.05
Подскажите как в компоненте TListView проверить состояние


6-1094917457
xmrz
2004-09-11 19:44
2004.12.05
IHTMLDocument2.readyState


1-1101041756
-=KITA=-
2004-11-21 15:55
2004.12.05
Имя папки, отображённой в shelllistview


14-1100765288
serg_s
2004-11-18 11:08
2004.12.05
рус. доку по Ms Project 2003


4-1098353983
Lingo
2004-10-21 14:19
2004.12.05
AddPrinterDriver





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский