-
Вынес компонент TDBGridEh в отдельный подгружаемый пакет (изд), в результате (в пакете) у него не выполняется код секции initialization. Как быть с initialization внутри bpl?
-
Странная логика.
Вынес TDBGridEh и именно из за этого у пакета перестала выполняться initialization.
-
Не у пакета, у TDBGridEh
-
PS у тебя не initialization не выполняется. У тебя скорее всего сама bpl не грузится.
-
Когда компонент внутри exe, его секция initialization выполняется, если компонент в пакете - нет
-
Не у пакета, у TDBGridEh
Откуда у класса взялись какие-то initialization?
Ничего не путаешь?
-
bpl грузится
-
Когда компонент внутри exe, его секция initialization выполняется, если компонент в пакете - нет
Внимательно изучи назначение секций requires и contains пакета.
-
bpl грузится
Спорим, что нет?
-
> Откуда у класса взялись какие-то initialization?
initialization, конечно, не у класса, а в модуле, в котором этот класс описывается. Когда этот модуль находится в пакете, эта секция не выполняется.
-
> Спорим, что нет?
чего мне спорить, во-первых я его руками загружаю, во вторых в 100kb-экзешнике никак не может находится VCL да ещё и с доп. компонентами.
-
Что-то я не пойму замысел архитектора.
Собрать приложение с рантайм пакетом ЕхЛиба, а потом вручную загружать его бпл.
-
Приложение само по себе ни о каком ЕхЛибе не знает, компилируется без этого пакета. Когда в нем в run-time создается форма из текстового описания, в которой используется соотв. грид, тогда пакет и подгружается. Ну да не в этом вопрос, вопрос "как заставить выполняться initialization внутри пакета".
-
initialization модуля, если на него есть ссылки, не может не выполниться.
Один раз за все время существования процесса.
-
если на него ссылки есть где? В exe или в пакете?
-
Exe ничего же не знает по библиотеку.
Внутри bpl вообще есть где-нибудь RegisterClass на грид?
-
> Внутри bpl вообще есть где-нибудь RegisterClass на грид?
нет
-
RegisterClass делается в exe после загрузки пакета перед созданием компонента
-
Интересно, как это делается в exe, если он ничего ни о ехлибе ни о его гриде не знает?
-
после того, как exe подгрузил пакет, уже знает. Сканирует классы в пакете и регистрирует нужный.