Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Куда складировать bpl?


Автор: bazzzman 7.5.2007, 06:22
Я распространяю свое приложение с файлами vcl70.bpl и rtl70.bpl.

Для основного приложения есть ряд дополнительных утилит которые можно скачать с сайта и они тоже нуждаются в bpl.

Раньше я просто складывал bpl в папку C:\Windows\System32 и все отлично работало. С приходом висты, засорять эту папку «не правильно» и пришлось класть bpl в папку с программой – «c:\Program Files\KeyMan».

Чтобы утилиты с сайта работали, я добавил путь к программе в переменную среду «path», но это очень не нравится отдельным пользователям.

Может кто-нибудь знает как можно не используя переменную path заставить exe видеть bpl? Может есть возможность как-то зарегистрировать библиотеку в системе и указать к ней полный путь?

Автор: Snowy 7.5.2007, 08:03
А разве он их не видит?
Положи в папку с программой и всё.

Автор: bazzzman 7.5.2007, 08:53
Пользователь заходит на сайт, нажимает на утилиту к программе. Окошко "открыть/сохранить". Далее два варианта:
1. "Открыть", браузер куда-то скачивает файл (наверное temp), запускает.
2. "Сохранить", пользователь куда-то сохраняет файл (я люблю на рабочий стол все кидать, в конце для удаляю файлы).

В обоих случаях скаченная и запущенная утилита находится не в папке программы => не может найти bpl => шокирует пользователя ошибкой.

Автор: Alex 7.5.2007, 09:14
Прошу прощения, что вмешиваюсь не по делу, но зачем вообще вы компилируете свой проект в пакетном режиме, начинаете заниматься извращениями с bpl и в результате получаете размер дистрибутива в 1,6М? Не удобней ли, а главное намного проще и надежней скомпилировать в режиме "все включено" компилятор в Delphi умный и вставит в exe только те функции из пакетов, которые реально используются в приложении, а не всю никому не нужную требуху...

Автор: bazzzman 7.5.2007, 09:48
Alex, все это делается ради плагинов.

1. Если компилим без bpl получаем 800кб дистрибутива и 200-300кб каждый (!!!) плагин. Сейчас у программы есть 10 плагинов от 30кб до 147кб весом. Причем это полноценные vcl плагины, с формами и т.д.
К тому же полную версию надо ставить один раз, потом можно качать no_bpl - это уже 1.04мб.
Т.е. наоборот выигрываем в размере.

2. Нельзя в плагинах использовать строки и работать с классами vcl основного приложения (например, нельзя обратится из dll к главной форме приложения без явного приведения типов; "as TForm" и "is TForm" не работают).
Это для меня очень важно.

Автор: Alex 7.5.2007, 10:13
Ок, плагины насколько я понял бесплатные, теперь анализируем сколько же пользователей используют все 10 плагинов думаю не так много вывод ради небольшого числа людей такие проблемы с bpl 200кб даже на модеме не криминал плюс об упаковщиках dll и exe не забываем smile Другой вариант развития плагинами пользуются практически все пользователи программы, тогда у меня возникает вопрос нафига это тогда в плагины выносить и самому страдать и других мучить заставляя скачивать все плагины...

Добавлено через 6 минут и 45 секунд
Я не против bpl, но считаю, что рядового пользователя вся это чехарда с ними только отпугивает от продукта, получается стремясь уменьшить объем программы, ты применяемым способом отпугиваешь рядовых пользователей... 

Автор: Snowy 7.5.2007, 10:20
bazzzman, используй инсталлятор. Например InnoSetup.
Он сам тебе положит свежие плагины в папку с программой.
Либо создай свою закачку плагинов.
Либо дай им кустомное расширение и зарегестрируй его на свою программу.
При открытии файлов с таким расширением, складывай их в папку с плагинами, автоматом переименовывая в bpl.
Вот навскидку аж 3 варианта - выбирай любой.

Добавлено через 4 минуты и 47 секунд
Alex, тут я с тобой не соглашусь.
Использование bpl очень даже оправдано.
Просто нужно уметь с ними дружить и применять с умом.
Мои последние 2 проекта построены на комбинации статических и динамических bpl.
И дело не только в плюсах, которые они дают. Они также заставляют выстраивать грамотную архитектуру проекта.
За последний год стал их очень любить и уважать smile

Автор: Alex 7.5.2007, 10:42
Snowy, я не спорю, возможно я не прав, но лично меня бы как разработчика не устроил ни один из предложеных вариантов smile 
И насколько я помню если к примеру программист перейдет с Delphi 7 на 2006, то bpl нужно будет все обновить в том числе и для плагинов, а это как я понимаю пере собрать все плагины и заставить пользователя все скачать и установить по новой, вот пользователь просто прыгать от радости будет делая это. Если я не прав поправьте меня.

Автор: MetalFan 7.5.2007, 12:17
Alex, если все будет зашито в инсталятор, то для пользователя установка bpl будет прозрачна...
так что особых проблем при правильном подходе к реализации плагинов в bpl я не вижу. разве что невозможность(затрудненность) создания плагинов в других средах разработки, или других версиях Delphi...

Автор: Alex 7.5.2007, 12:27
MetalFan, тогда не забудь сделать защиту, что бы тебе новой версии программы не могли подсунуть плагин скомпилированный к примеру в Delphi 7, а программа уже скомпилирована под Delphi 2006, а то рано или поздно наступишь на эти грабли и тебе будет головная боль и пользователям не приятно. Т.к. рано или поздно все равно смена версии среды разработки у тебя произойдет.

Автор: skylex 21.12.2008, 15:41
скиньте пожалуйста файл "rtl120.bpl"

Автор: bartram 22.12.2008, 18:15
Цитата(skylex @  21.12.2008,  17:41 Найти цитируемый пост)
скиньте пожалуйста файл "rtl120.bpl" 

Смысл? Он есть в поставке с Делфи.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)