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

Вниз

Проблема с design time packages   Найти похожие ветки 

 
BFG9k ©   (2005-12-14 15:38) [0]

Или я что-то не понимаю в идеологии, или где-то глюки ...

Если я включаю свой пакет в Runtime Packages, то его приходится загружать после запуска программы. Интерфейсная часть пакета берется из DCP файла.

Для того, чтобы включить пакет к исполняемый файл на этапе компиляции, нужно добавить его Design time packages. При этом добавляем уже скомпилированный BPL файл.

Где при этом находится интерфейсная часть ?

Проблема в том, что я добавляю с свой пакет в Design time packages, но среда не находит его модули. Если при этом его добавить также в runtime packages, все нормально компилируется и работает хотя Я ЕГО ПОСЛЕ ЭТОГО НЕ ЗАГРУЖАЛ С ПОМОЩЬЮ LOADPACKAGE. Значит ли это, что пакет попал в исполняемый файл ?


 
Игорь Шевченко ©   (2005-12-14 15:44) [1]


> Если я включаю свой пакет в Runtime Packages, то его приходится
> загружать после запуска программы. Интерфейсная часть пакета
> берется из DCP файла.


Его система сама загружает, как любую другую DLL


> Для того, чтобы включить пакет к исполняемый файл на этапе
> компиляции, нужно добавить его Design time packages. При
> этом добавляем уже скомпилированный BPL файл.


В Design time packages включены те пакеты, которые загружает сама среда, Delphi то есть. К твоему приложению они не имеют никакого отношения.


 
DesWind ©   (2005-12-14 15:48) [2]

Я так понял, что надо прописать путь к пакету в Library path


 
DesWind ©   (2005-12-14 15:55) [3]

Точнее к *.dcu этого пакета


 
BFG9k ©   (2005-12-14 16:00) [4]

2 Игорь Шевченко:

При включении пакета в Runtime Packages размер EXE файла не увеличивается. Мне то как раз и нужно, чтобы среда увидела пакет, для того чтобы скомпилировать программу.

2 DesWind:

А разве dcu не находятся внутри bpl ? Где это - Library Path ?


 
BFG9k ©   (2005-12-14 16:07) [5]

2 Игорь Шевченко:

Если включить в runtime packages, все работает. Мне просто важно понять почему ... вдруг bpl файл загружается после запуска программы.


 
Игорь Шевченко ©   (2005-12-14 16:15) [6]


> вдруг bpl файл загружается после запуска программы.


Вдруг ничего не бывает. BPL, указанный в run-time packages загружается одновременно с запуском программы, как и любая другая DLL. Указание пакета в списке run-time packages приводит к тому, что функции (классы, методы и т.п.) в юнитах этого пакета вызываются как функции из внешней DLL, вместо того, чтобы включаться в общий EXEшник.


 
BFG9k ©   (2005-12-14 16:44) [7]


> Указание пакета в списке run-time packages приводит к тому,
>  что функции (классы, методы и т.п.) в юнитах этого пакета
> вызываются как функции из внешней DLL, вместо того, чтобы
> включаться в общий EXEшник.

Мне это не нужно. Мне нужно зашить BPL в EXEшник. О том и толкую ....


 
Игорь Шевченко ©   (2005-12-14 16:53) [8]


> Мне нужно зашить BPL в EXEшник.


Исключи его из run-time пакетов и укажи путь к dcu юнитов этого пакета.


 
BFG9k ©   (2005-12-22 17:13) [9]


> Исключи его из run-time пакетов и укажи путь к dcu юнитов
> этого пакета.


Где указать ? В search pas ? А зачем тогда пакет, спрашивается ?:) Dcu же зашиты внутри bpl. Я кажется понял, пакет надо проинсталлировать ...


 
jack128 ©   (2005-12-22 17:19) [10]

BFG9k ©   (22.12.05 17:13) [9]
А зачем тогда пакет, спрашивается ?:)

А пакет в этом случае и не нужен. А зачем ты пакет сделал??


 
BFG9k ©   (2005-12-22 17:33) [11]

Объясняю идеологию пакетов. 2 пакета не могут содержать одноименные модули (или один и тот же модуль). Эти модули засовываются в третий пакет, а он используется в секции requires первых двух пакетов.

Этот третий пакет (в моем случае в нем находится базовый класс от которого пораждаются классы, находящиеся в первых двух пакетах) по-любому используется в главной программе, которая загружает первый 2 пакета динамически.

И отсюда вывод. Зачем подгружать этот пакет динамически, когда его-то как раз можно засунуть в ЕХЕшник? Но че-то не получается пока ...


 
Игорь Шевченко ©   (2005-12-22 17:43) [12]


> И отсюда вывод. Зачем подгружать этот пакет динамически,
>  когда его-то как раз можно засунуть в ЕХЕшник? Но че-то
> не получается пока ...


И не получится. Зато его можно загружать статически, включив в список Build with run-time packages.

Тебя же не удивляет, что каждый пакет требует rtl70.bpl ? Мысль его засунуть в EXEшник тебя не посещает ?



Страницы: 1 вся ветка

Текущий архив: 2006.01.15;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.047 c
1-1134454223
Alec_C
2005-12-13 09:10
2006.01.15
TThread и повторный вызов


2-1135286082
Lisii
2005-12-23 00:14
2006.01.15
Архиватор (сжатие данных)


1-1134039576
Владислав
2005-12-08 13:59
2006.01.15
Реализация лог-файла.


14-1134933202
Quattro
2005-12-18 22:13
2006.01.15
Рихтер


2-1135583988
Rolf
2005-12-26 10:59
2006.01.15
Как узнать длину текста в пикселах на канве?