Форум: "Потрепаться";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];
ВнизRuntime пакеты. Найти похожие ветки
← →
Тимохов © (2004-07-07 15:34) [0]Возникла страя задача портирования с д3 на д6.
В д3 мною был написан некий набор компонентов.
Проектом я не занимался лет 5, может 4. Не суть.
Поэтому изрядно это подзабыл.
При портировании возникли проблемы.
Портировал наш сотрудник, который теперь в отпуске.
Он заменил DsgnIntf на DesignIntf и в сделал DesignIDE runtime пакетом.
Вопрос - нужно ли мне поставлять DesignIDE с продуктом?
Не судите строго за вопрос :)
← →
Тимохов © (2004-07-07 15:39) [1]
> Не судите строго за вопрос :)
т.к. после 4 лет работы с БД интереса к компонентам нет.
На ламерский вопрос - нужен точный ответ:)))
← →
jack128 © (2004-07-07 15:43) [2]а ты попробуй запустить на машине без Д, сразу и узнаешь ;-)
← →
vuk © (2004-07-07 15:43) [3]Нафига в Runtime пакете используется DesignIDE?
← →
jack128 © (2004-07-07 15:43) [4]хотя мое скромное ИМХО нужно..Все таки
> runtime пакет
← →
Тимохов © (2004-07-07 15:46) [5]
> vuk © (07.07.04 15:43) [3]
и пакет и проложения мои.
как runtime пакет включен не в пакет, а в приложение...
если этого не делать, то не находит модуль prixies.
← →
vuk © (2004-07-07 15:47) [6]Явно перемешан в одном пакете Designtime и Runtime код. Нужно это дело разделять по разным пакетам.
← →
Тимохов © (2004-07-07 15:49) [7]
> vuk © (07.07.04 15:47) [6]
> Явно перемешан в одном пакете Designtime и Runtime код
это точно.
Дело в том, что все на что сейчас есть силы - это переписать методику сетевого взаимодействия и сериализации. Поэтому пакеты, несмотря на то, что все не очень хорошо, трогать бы не хотелось. Благо и работает...
Так все-каки - нужен desighide конечному пользователю?
← →
Юрий Зотов © (2004-07-07 15:53) [8]> Тимохов
DesignIDE содержит только то, что относится к работе в IDE и к runtime-пакету не должен цепляться ни в коем случае.
Вам нужно разбить Ваш пакет на два - runtime и designtime. В первом оставьте ТОЛЬКО сами компоненты, а во второй вынесите ВСЕ, что касается работы в IDE (все процедуры Register, редакторы свойств и компонентов, иконки для палитры и пр.). Ни один юнит из первого пакета не имеет право ссылаться в uses ни на один юнит из второго (а наоборот - сколько угодно). И в первом пакете никаких ссылок на DesignIDE быть не должно, а вот в requires второго - наоборот, должны быть DesignIDE и ссылка на первый пакет.
Вот и все. Первый пакет просто компилилируется в доступный по Path каталог, второй - инсталлируется в IDE. С приложением надо будет поставляеть только первый пакет.
← →
Юрий Зотов © (2004-07-07 15:55) [9]> Тимохов © (07.07.04 15:49) [7]
> Так все-каки - нужен desighide конечному пользователю?
Распространение DesignIDE есть нарушение лицензионного соглашения. См. Deploy.txt в дистрибутиве Delphi.
← →
Тимохов © (2004-07-07 16:09) [10]Ой, я наверное не так выразился: мой пакет к моему приложению я не цепляю как runtime.
еще раз.
есть мой пакет, назовем ПАКЕТ.
есть мое приложение, назовем ПРИЛОЖЕНИЕ.
ПАКЕТ содержит редакторы свойств и т.д.
Секция requires ПАКЕТА включает в себя:
requires
vcl,
vclx,
designide;
В разделе project\options\packages в ПАКЕТЕ НЕ выбран ни один runtime пакет (у меня и галка задисейблена).
В аналогичном разделе ПРИЛОЖЕНИЯ стоит галка use runtime packages и выбран ОДИН пакет DesignIde. В search path выбрана диретория, где лежит пакет, сами юниты пакета в ПРИЛОЖЕНИЕ не явно не подключены.
Проверил на компе без Дельфи (еле нашел :)). Требует rtl60.bpl.
Это и есть требование указанного пакета?
ЗЫ. Прошу прощения, что ввел в заблуждение общественность.
ЗЫЫ. Да, наверное опять придется в это вникать...
← →
Sandman25 © (2004-07-07 16:12) [11]Независимо от выбранности, всегда требуются vcl.bpl и rtl.bpl.
Приложение, требующее DesignIde, - очень плохая идея.
← →
Anatoly Podgoretsky © (2004-07-07 16:12) [12]Тимохов © (07.07.04 15:34)
По лицензии это можно подключать и поставлять только с design time пакетами.
← →
Тимохов © (2004-07-07 16:12) [13]Посоветуйте, что почитать про пакеты в Дельфи 6?
← →
iZEN © (2004-07-07 16:13) [14]/**Тимохов © (07.07.04 15:49) [7]
Дело в том, что все на что сейчас есть силы - это переписать методику сетевого взаимодействия и сериализации.
*/
Поподробнее про сериализацию можно? (Что это, для чего используется.)
← →
Тимохов © (2004-07-07 16:13) [15]о, блин, как все изменилось в обласит компонентов.
если не ошибаюсь в Дельфи 3 было иначе...
← →
Тимохов © (2004-07-07 16:14) [16]
> iZEN © (07.07.04 16:13) [14]
под термином "сериализация" я имел в виду сохранение...
и все...
ЗЫ. Почему анкеты нет?! :))
← →
Anatoly Podgoretsky © (2004-07-07 16:15) [17]Тимохов © (07.07.04 16:13) [15]
Было иначе, но лицензионно одинаково
← →
Игорь Шевченко © (2004-07-07 16:16) [18]
> Посоветуйте, что почитать про пакеты в Дельфи 6?
Тейкстейру с Пачеко
← →
Юрий Зотов © (2004-07-07 16:16) [19]> Тимохов © (07.07.04 16:12) [13]
1. Тейксейра, Пачеко.
2. Справка. Набрать packages - там и о проектированиии, и о поставке тоже есть.
← →
Тимохов © (2004-07-07 16:17) [20]
> Игорь Шевченко © (07.07.04 16:16) [18]
>
> > Посоветуйте, что почитать про пакеты в Дельфи 6?
>
>
> Тейкстейру с Пачеко
у меня по Д5. Пойдет?
> Юрий Зотов © (07.07.04 16:16) [19]
Сегодня же и начну справку читать.
← →
Тимохов © (2004-07-07 16:20) [21]А все-таки rtl60.bpl при запуске программа требует именно потому что я использую DesignIde или я еще какие-то изменения в копонентах пропустил?
← →
vuk © (2004-07-07 16:22) [22]rtl60 программа требует потому, что нужно снять галочку "build with runtime packages".
← →
Тимохов © (2004-07-07 16:27) [23]
> vuk © (07.07.04 16:22) [22]
> rtl60 программа требует потому, что нужно снять галочку
> "build with runtime packages".
она тогда модуль proxies требует в модуле DesignEditors.
Спасибо всем - не хотел трогать пакет, а видно придется :(((
← →
Тимохов © (2004-07-07 16:35) [24]Странно, в текущем проекте также есть пакет с определенным набором компонент, но таких проблем мне там не ведомо. Полагаю, что от design time"а я в нем требую только одно - положить компонент на определенную панельку, выставить align, name, т.е. стандартные поля. Инициализацию компонентов и их дизайн (наполнение, например, гридов) я делаю в runtime кодом.
В старом же проекте - весь дизайн делался имеено в designtime.
Может отказаться от этого?
Тогда и проблем с DesignIde не будет...
← →
Sandman25 © (2004-07-07 16:43) [25][24] Тимохов © (07.07.04 16:35)
Не надо искать обходные пути. Надо делать, как надо делать :)
← →
Юрий Зотов © (2004-07-07 17:01) [26]> Тимохов © (07.07.04 16:35) [24]
Путаница с понятиями designtime и runtime.
Для компонента, фактически, никаких designtime не существует. И в среде IDE, и в программе он работает одинаково (за исключением того, что в коде могут быть вставки типа if csDesigning in ComponentState then ...). Поэтому всякие там выставления Align, Name и пр. в Object Inspector"е относятся, с точки зрения компонента, к runtime.
А к designtime относится все то, что ТОЛЬКО в IDE и используется. Не в готовой Вашей программе, а ТОЛЬКО в IDE. И вне IDE никогда не работает - значит, и не должно входить в код прикладной программы. Это процедуры Register, иконки компонентов для палитры, редакторы свойств и компонентов, эксперты IDE.
Вот все это и ДОЛЖНО быть вынесено во второй пакет. Это и будет design-time пакет, только его и надо инсталлировать в IDE. А сами компоненты (и только их!) оставьте в первом пакете - это и будет run-time пакет, инсталлировать его не надо, только скомпилировать.
Проблемы с DesignIDE возникают оттого, что в Вашем пакете есть редакторы свойств - они тянут за собой модуль DesignEditors, а тот, в свою очередь, тянет Proxies, которого нет (он входит в готовый пакет DesignIDE). Как только Вы уберете эти редакторы в design-time пакет, а в его requires пропишете DesignIDE - проблема исчезнет.
Перечитайте [8] - только внимательно, плз.
← →
Тимохов © (2004-07-07 17:13) [27]
> Юрий Зотов © (07.07.04 15:53) [8]
> Первый пакет просто компилилируется в доступный
> по Path каталог
Какой path имеется в виду?
> С приложением надо будет поставляеть только первый пакет.
Вы имеете в виду поставлять если я компилирую приложение с галкой build with runtime packages?
> Sandman25 © (07.07.04 16:43) [25]
Что вы считаете обходным? Отход о редактирования в designtime? Так это опыт жизненный, что проекты только с runtime может и не вполне тардициооны с точки зрения программистов delphi, однако хорошо поддерживаются. Не буду объяснять конкретней, если хотите, могу в чате пояснить мысль
← →
Юрий Зотов © (2004-07-07 17:21) [28]> Тимохов © (07.07.04 17:13) [27]
> Какой path имеется в виду?
Переменная системного окружения Path.
> Вы имеете в виду поставлять если я компилирую приложение с
> галкой build with runtime packages?
Да. С галкой программе будут нужны ТОЛЬКО runtime пакеты, без галки ей вообще ничего не требуется. А designtime пакеты (включая DesignIDE) с программой не поставляются никогда, они ей просто не нужны (правда, есть особый класс программ, но это уже другая тема).
← →
Sandman25 © (2004-07-07 17:24) [29][27] Тимохов © (07.07.04 17:13)
Обходным я считаю попытки избежать разделения пакета на два.
← →
Тимохов © (2004-07-07 17:25) [30]
> Да. С галкой программе будут нужны ТОЛЬКО runtime пакеты,
> без галки ей вообще ничего не требуется. А designtime пакеты
> (включая DesignIDE) с программой не поставляются никогда,
> они ей просто не нужны (правда, есть особый класс программ,
> но это уже другая тема).
Ну тогда я спокоен за свое будущее:
1. я сделаю так, как вы сказали - все разнесу по двум пакетам
2. в приложении вообще ну буду ставить галку build with runtime packages. Повторю, что сейчас я ей пользуюсь только потому, что нужно как-то использовать DesignIde.
В этом случае ничего, кроме самого приложения, поставлять не надо будет.
Спасибо за ответы.
ЗЫ. Если что неверно в моих высказываниях, то плз поправте.
← →
Тимохов © (2004-07-07 17:27) [31]
> Sandman25 © (07.07.04 17:24) [29]
> [27] Тимохов © (07.07.04 17:13)
>
> Обходным я считаю попытки избежать разделения пакета на
> два.
Ну если я откажусь от редакторов свойсв и буду все здачения задавать в коде и, как следтвие откажусь от потребности в разделении, т.к. не нужен будет designide, это же вы не назовете обходным маневром?
← →
Sandman25 © (2004-07-07 17:30) [32][31] Тимохов © (07.07.04 17:27)
От Register Вы не откажетесь :) Даже для самого простоко компонента нужны 2 пакета. Если, конечно, Вы хотите этот компонент мышой на форму кидать, а не просто писать uses MyUnit и создавать только в run-time.
← →
Тимохов © (2004-07-07 17:33) [33]
> Sandman25 © (07.07.04 17:30) [32]
> От Register Вы не откажетесь
Я начинаю это уже понимать...
Что это вообще за новости - с какого дельфи начался такой беспредел - потребность в двух пакетах? В третьем этого не было!
)))
← →
Sandman25 © (2004-07-07 17:35) [34]Не помню/знаю, с 5-го, по-моему.
Недавно пытался переводить проект с 4, на 6. Нарвался на те же траблы с DesignIDE.
← →
Тимохов © (2004-07-07 17:37) [35]
> Sandman25 © (07.07.04 17:35) [34]
я вообще в ужасе :))) что значит несколько лет не заниматься какой-то областью - не догонишь потом :))))
← →
Тимохов © (2004-07-07 18:05) [36]Я чуточку разобрался на тестовом примере и по доке. Пока не работает, но смысл понял.
Не понятно одно - какова была мотивиция Борланда, чтобы сделать так? Чем было плохо в Дельфи 3? Я так полагаю, что это сделано для того, чтобы не тащить лишний код нужный только в дизайне?
← →
Юрий Зотов © (2004-07-07 18:11) [37]> Sandman25 © (07.07.04 17:30) [32]
> Если, конечно, Вы хотите этот компонент мышой на форму кидать,
> а не просто писать uses MyUnit и создавать только в run-time.
А тогда и вовсе никаких пакетов не нужно - только сам unit.
> Тимохов © (07.07.04 17:33) [33]
> с какого дельфи начался такой беспредел - потребность в двух
> пакетах? В третьем этого не было!
Если писать компоненты ПРАВИЛЬНО, то это нужно было всегда, начиная еще с D1. Ведь не нужны в Exe иконки компонентов? Не нужны. А если они сидят в одном пакете с самими компонентами, то они и в ресурсы Exe подтянутся - в итоге бесполезно растет размер Exe и больше ничего.
До D6 модуль Proxies поставлялся в виде DCU и поэтому проблем не возникало, даже при одном пакете. Размер Exe был несколько больше, чем мог бы быть, но проблем не возникало, все компилировалось. А начиная с D6 Borland оставила Proxies только в бинарнике DesignIDE - вот отсюда все и началось. Designtime-редакторы тянут DesignEditors, тот тянет Proxies - и надо включать DesignIDE. А включать его в состав runtime-кода нельзя, иначе при компиляции с пакетами нужно будет поставлять DesignIDE, распространять который нельзя - значит, надо обязательно делать два пакета.
Но это правильно. Потому что, повторюсь, по-хорошему это надо было делать всегда. Просто раньше это не было обязательным, а начиная с D6 стало обязательным, вот и вся разница.
← →
Тимохов © (2004-07-07 18:16) [38]
> Юрий Зотов © (07.07.04 18:11) [37]
Спасибо за комментарий, Юрий.
К сожалению, когда начало проекта, который я сейчас "поднимаю" из истории, и начало моего общения с дельфи совпали. Поэтому много я просто не знал тогда.
Спасибо еще раз.
В основном проекте также надо будет сделать разделение...
> А тогда и вовсе никаких пакетов не нужно - только сам unit.
Знаете, в основном проекте я к этому и пришел - в пакете только 10 процентов того, что было год назад.
← →
Anatoly Podgoretsky © (2004-07-07 19:05) [39]Канал у меня слетел, не смог ответить сразу, ну тут уже все объяснили, дам только ссылку на FAQ где есть немного по теме.
http://podgoretsky.com/ftp/Language/nps/ru.delphi.html#N144
Может что пригодится в дополнение в вышеизложеному.
Как было сказано проблема возникла начиная с Д6, где Борланд сделал разделение, сделал он по двум причинам, действительно разделить дизайн там вещи от программы и вторая, то что многие разработчики нарушали лицензионное соглащение и распространяли DesignIDE вместе с программой, включая некоторые из возможностей IDE в свой продукт не покупая дополнительной лицензии.
← →
Igorek © (2004-07-07 19:46) [40]
> Тимохов © (07.07.04 15:34)
> Возникла страя задача портирования с д3 на д6.
Офф: Радуйся, что у тебя исходники перекомпиливаются. Значит там ничего специфического не юзалось. Помниться писали мы компоненты - под несколько Дельфей сразу. Так в коде много было директив условной компиляции (IFDEF D6...). А исходники DreamLib вообще пестрят ими.
Не пойму, зачем Борланд меняет от версии к версии... Почему нету обратной совместимости?..
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];
Память: 0.57 MB
Время: 0.04 c