Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »
Страницы: 1 2 3

bpl и initialization


d_oleg ©   (05.06.07 13:32

Вынес компонент TDBGridEh в отдельный подгружаемый пакет (изд), в результате (в пакете) у него не выполняется код секции initialization. Как быть с initialization внутри bpl?


Reindeer Moss Eater ©   (05.06.07 13:41[1]

Странная логика.
Вынес TDBGridEh и именно из за этого у пакета перестала выполняться initialization.


d_oleg ©   (05.06.07 13:44[2]

Не у пакета, у TDBGridEh


Reindeer Moss Eater ©   (05.06.07 13:44[3]

PS у тебя не initialization не выполняется. У тебя скорее всего сама bpl не грузится.


d_oleg ©   (05.06.07 13:45[4]

Когда компонент внутри exe, его секция initialization выполняется, если компонент в пакете - нет


Reindeer Moss Eater ©   (05.06.07 13:45[5]

Не у пакета, у TDBGridEh

Откуда у класса взялись какие-то initialization?
Ничего не путаешь?


d_oleg ©   (05.06.07 13:46[6]

bpl грузится


Reindeer Moss Eater ©   (05.06.07 13:47[7]

Когда компонент внутри exe, его секция initialization выполняется, если компонент в пакете - нет

Внимательно изучи назначение секций requires и contains пакета.


Reindeer Moss Eater ©   (05.06.07 13:47[8]

bpl грузится

Спорим, что нет?


d_oleg ©   (05.06.07 13:47[9]


> Откуда у класса взялись какие-то initialization?

initialization, конечно, не у класса, а в модуле, в котором этот класс описывается. Когда этот модуль находится в пакете, эта секция не выполняется.


d_oleg ©   (05.06.07 13:48[10]


> Спорим, что нет?

чего мне спорить, во-первых я его руками загружаю, во вторых в 100kb-экзешнике никак не может находится VCL да ещё и с доп. компонентами.


Reindeer Moss Eater ©   (05.06.07 13:54[11]

Что-то я не пойму замысел архитектора.
Собрать приложение с рантайм пакетом ЕхЛиба, а потом вручную загружать его бпл.


d_oleg ©   (05.06.07 13:57[12]

Приложение само по себе ни о каком ЕхЛибе не знает, компилируется без этого пакета. Когда в нем в run-time создается форма из текстового описания, в которой используется соотв. грид, тогда пакет и подгружается. Ну да не в этом вопрос, вопрос "как заставить выполняться initialization внутри пакета".


Reindeer Moss Eater ©   (05.06.07 14:01[13]

initialization модуля, если на него есть ссылки, не может не выполниться.

Один раз за все время существования процесса.


d_oleg ©   (05.06.07 14:22[14]

если на него ссылки есть где? В exe или в пакете?


Reindeer Moss Eater ©   (05.06.07 14:26[15]

Exe ничего же не знает по библиотеку.

Внутри bpl вообще есть где-нибудь RegisterClass на грид?


d_oleg ©   (05.06.07 15:05[16]


> Внутри bpl вообще есть где-нибудь RegisterClass на грид?
нет


d_oleg ©   (05.06.07 15:07[17]

RegisterClass делается в exe после загрузки пакета перед созданием компонента


Reindeer Moss Eater ©   (05.06.07 15:22[18]

Интересно, как это делается в exe, если он ничего ни о ехлибе ни о его гриде не знает?


d_oleg ©   (05.06.07 17:53[19]

после того, как exe подгрузил пакет, уже знает. Сканирует классы в пакете и регистрирует нужный.


Страницы: 1 2 3 версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо