Форум: "Потрепаться";
Текущий архив: 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 вообще пестрят ими.
Не пойму, зачем Борланд меняет от версии к версии... Почему нету обратной совместимости?..
← →
vuk © (2004-07-07 19:56) [41]>Почему нету обратной совместимости?
А где она есть?
← →
хм © (2004-07-07 20:32) [42]в кубейсике
← →
Игорь Шевченко © (2004-07-07 21:01) [43]
> Почему нету обратной совместимости?..
Продукт некоторым образом развивается...
← →
Igorek © (2004-07-08 11:23) [44]
> vuk © (07.07.04 19:56) [41]
> >Почему нету обратной совместимости?
> А где она есть?
Напр. в Виндовс. АПИ функции с окончанием Ех и старые.
> Игорь Шевченко © (07.07.04 21:01) [43]
> > Почему нету обратной совместимости?..
> Продукт некоторым образом развивается...
Не аргумент. См выше.
← →
Тимохов © (2004-07-08 11:39) [45]Спасибо, друзья.
Все понял (или пойму :)))
Буду читать.
← →
Игорь Шевченко © (2004-07-08 11:40) [46]Igorek © (08.07.04 11:23)
> Напр. в Виндовс. АПИ функции с окончанием Ех и старые.
Учи матчасть. Долго. Наизусть. Мало того, что ряд функций работает по-разному на разных платформах, кроме того, часть функций вообще не поддерживается на новых платформах.
← →
Anatoly Podgoretsky © (2004-07-08 11:41) [47]Igorek © (08.07.04 11:23) [44]
Не аргумент, надо сравнивать библиотеки, разделяются или нет
Основная проблема при переходах та, что часто переменовываются и разделяются библиотеки.
Очень серьезная проблема была с переходом с Д2 на Д3, поменялось большинство библиотек. Далее подобное происходило, но в меньшем объеме, например всю работу с вариантами в Д6 вынесли в отдельный модуль. Естественно появились небольшие проблемы с портированием.
← →
Тимохов © (2004-07-08 11:45) [48]Братцы!!! Ну вы же долны понимать, что Игорек не остановится.
В результате из невинной ветки про пакеты выйдет "Грустно - до чего же windows г.".
Игорек.
Нижайшая просьба. Если все-таки захожется пообсуждать что-нить - заведи отедельную ветку. Название я обозначил. :)))
← →
Igorek © (2004-07-08 12:39) [49]
> Тимохов © (08.07.04 11:45) [48]
> Братцы!!! Ну вы же долны понимать, что Игорек не остановится.
> В результате из невинной ветки про пакеты выйдет "Грустно
> - до чего же windows г.".
Это зависит от вас.
1) не нарушайте правила форума; прочитайте их, если еще этого не сделали; в часности пункт про недопустимость перехода на личности и их обсуждение;
2) я тут вчера еще раз перечитал ветку Зотова про синий карандаш с вашим участием; вы - сын препода из МГУ; может ваш отец еще и научной деятельностью занимался? по крайней мере с учеными общался - это точно; так вот не поленитесь попросить у него прочитать вам лекцию об этике научного общения; или в Интернете найдите; много полезного почерпнете, уверяю; ну а после этого опубликуйте материалы в отдельной ветке; огромная польза и наука будет для всех участников форума; и в первую очередь для вас лично;
3) если вам пофиг п.2, то я сам как нибуть это проделаю
---
с наилучшими пожеланиями...
> Игорь Шевченко © (08.07.04 11:40) [46]
> Igorek © (08.07.04 11:23)
> > Напр. в Виндовс. АПИ функции с окончанием Ех и старые.
> Учи матчасть. Долго. Наизусть. Мало того, что ряд функций
> работает по-разному на разных платформах, кроме того, часть
> функций вообще не поддерживается на новых платформах.
Что именно? Весь МСДН назубок?
Ладно это оффтоп. Не буду спорить. Может в отдельной ветке как нибуть потом.
> Anatoly Podgoretsky © (08.07.04 11:41) [47]
Хотел бы поговорить об этом, но оффтоп. Надеюсь потом как нибуть.
← →
Тимохов © (2004-07-08 12:46) [50]
> лекцию об этике научного общения
я щас сдохну - "научного общения"...
Тема семинара "Борланд г - неправильно сделал числа с плавающей точкой". Приглашаются все желающие. Желающих нет? Как так! Это же так интересно.
ЗЫ. Если вы еще не поняли - до научного общения с вами еще далеко :))))
> Ладно это оффтоп. Не буду спорить. Может в отдельной ветке
> как нибуть потом.
> Хотел бы поговорить об этом, но оффтоп. Надеюсь потом как
> нибуть.
Вот за это от всего сердца спасибо!
← →
Anatoly Podgoretsky © (2004-07-08 13:03) [51]Igorek © (08.07.04 12:39) [49]
Если о том, почему так то конечно офтопик, а русле ветки нормально.
И от модератора, действительно перенесите взаимное обсуждение в область персональной почты или чата, во всяком случае не в этой ветке обсуждать поведение в других.
app
← →
Igorek © (2004-07-08 13:33) [52]Удалено модератором
Примечание: Все персональное обсуждение и офтопик, после предупреждения пойдет в корзину
← →
vuk © (2004-07-08 14:01) [53]to Igorek © (08.07.04 11:23) [44]:
>АПИ функции с окончанием Ех и старые.
Это по-Вашему прямая совместимость? :o)
← →
Igorek © (2004-07-08 14:27) [54]2 модератор
> Тимохов © (08.07.04 12:46) [50]
> ЗЫ. Если вы еще не поняли - до научного общения с вами еще
> далеко :))))
Вы забыли удалить это.
← →
app © (2004-07-08 14:43) [55]Читай внимательно "после предупреждения"
← →
Тимохов © (2004-07-08 20:00) [56]Ура!
Я разделил все на два пакета: в точности как говорил Юрий.
Теперь программа работает и на компьютерах без Дельфи.
У меня есть пакет BcPackage и BcDesignPackage.
В первом сами компоненты, во втором - register, иконки, редакторы. Первый пакет НЕ устанавливаю, делаю только compile. Второй - утсанавливаю.
Нигде build with runtime packages не использую.
Но возникло несколько вопросов.
1. Почему в списке "design packages" все же BcPackage виден, хотя я его не устанавливал?
2. Правильно ли я понимаю, что т.к. я раньше пытался поставить галку "Build with runtime packages" и вписал туда designide, то при запуске на компе без дельфи требовалось куча bpl (rtl60.bpl например) именно потому, что сам код пакета designide лежит НЕ в одноименном bpl, а лежит в системных для самой среды дельфи библиотеках bpl и теоретически можно было бы добится работоспособности программы на компе без дельфи, но для этого пришлось бы тянуть кучу разных bpl?
← →
Sandman25 © (2004-07-09 08:50) [57]1.
В опциях пакета установили ему runtime only?
2.
Еще раз. Как только установлен флаг Build with runtime packages, сразу же становятся нужными rtl.bpl и vcl.bpl. При этом не важно, есть они в списке используемых пакетов или нет.
← →
Тимохов © (2004-07-09 09:40) [58]
> 1.
> В опциях пакета установили ему runtime only?
Помогло. Один я сделал runtime only, другой - design time only.
> 2.
Понял.
← →
GrayFace © (2004-07-11 13:38) [59]>Если писать компоненты ПРАВИЛЬНО, то это нужно было всегда, начиная еще с D1. Ведь не нужны в Exe иконки компонентов? Не нужны. А если они сидят в одном пакете с самими компонентами, то они и в ресурсы Exe подтянутся - в итоге бесполезно растет размер Exe и больше ничего.
Нет. Иконки, хранящиеся в .dcr к exe не приклеиваются, если явно не писать {$R aaa.dcr}.
> Почему нету обратной совместимости?..
Потому что Борланд г.
>Учи матчасть.
Че это?
>Тема семинара "Борланд г - неправильно сделал числа с плавающей точкой".
Серьезно? А что он сделал неправильно?
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];
Память: 0.63 MB
Время: 0.037 c