Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];

Вниз

Проблема с 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.014 c
2-1135320208
geonew
2005-12-23 09:43
2006.01.15
печать


2-1135608198
Кальян
2005-12-26 17:43
2006.01.15
Школьное Рисование


14-1134978957
Чапаев
2005-12-19 10:55
2006.01.15
CDMA-телефон и Internet callback


1-1134320983
SergP
2005-12-11 20:09
2006.01.15
Работа с одной переменной в нескольких потоках.


3-1132066468
Vlad
2005-11-15 17:54
2006.01.15
ADOQuery + ClientDataSet. Ошибка при пустом параметре





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский