Текущий архив: 2014.08.17;
Скачать: CL | DM;
ВнизВот говорят, что дельфи не умирает Найти похожие ветки
← →
DevilDevil © (2014-01-21 19:38) [200]> И в исходном виде - да, если {$M+} в настройках включен.
> Я это к тому, что всё-таки можно.
напомни название опции, поищу
> Для Delphi такое выражение просто смешно.
ну для того кто не программирует - может и смешно
я постоянно перекомпилирую, дорабатываю, отлаживаю
← →
Ega23 © (2014-01-21 19:42) [201]
> напомни название опции, поищу
Я семёрку последний раз видел лет шесть назад.
> ну для того кто не программирует - может и смешно
> я постоянно перекомпилирую, дорабатываю, отлаживаю
А, ну так-то оно конечно да, тут один программист всего, я и забыл.
← →
Rouse_ © (2014-01-21 19:50) [202]
> DevilDevil © (21.01.14 17:48) [198]
> > Я просто считаю, что лучше больше возможностей, чем меньше
> :)
>
> Я тоже за "больше возможностей"
> Просто в данном случае мы говорим о возможностях, которые
> во-первых, нужны далеко не всегда, во-вторых, отжирают немеряно
> времени компиляции. Ну и мегабайтов на диске тоже. Почему
> ты игнорируешь аргумент с временем компиляции - не понятно.
> Лично меня этот момент просто выбешивает
Как давно ты делал полный билд проекта под MS VC++ ?
Если тебя выбешивает время компиляции под дельфей, то под студией ты должен как минимум пойти и застрелить разработчиков оной, пока проект билдится (и вероятно даже успеешь) :)
← →
Rouse_ © (2014-01-21 19:52) [203]ЗЫ: это я тебе так мягко намекаю, бо время полного ребилда того-же Notepad++ коим мы тут все привыкли пользоваться в районе двух с половиной часов.
← →
Пит (2014-01-21 20:06) [204]ага, поэтому у дельферов ярко выраженный стиль работы. Сделал галочку, жмякнул F9, посмотрел как она выглядит и работает, дальше программирует )))
← →
Ega23 © (2014-01-21 20:26) [205]
> Как давно ты делал полный билд проекта под MS VC++ ?
Это, помниццо, лет 5 назад с Алкидом нажрались как-то во вторник. Ну и по аське в среду, мол, как самочувствие? А он мне: "Да я поставил полный билд проекта и спать на руки лёг, часа 2 проспал".
Но я понимаю - Лёха-то ваще не программирует совсем.
← →
clickmaker © (2014-01-21 21:06) [206]> Да я поставил полный билд проекта и спать на руки лёг, часа
> 2 проспал
программер спит - таймшит идет
← →
Юрий Зотов © (2014-01-21 21:34) [207]> Object Inspector Conscience (21.01.14 16:58) [179]
> Компоненты компилятся в отдельные bpl-и
Это не новость.
> код которых, если не сильно изворачиваться, не попадает в exe.
Если компилить с run-time пакетами. А если нет (что бывает чаще), то вот это уже новость.
> В design-time bpl вполне можно published трактовать как RTTI.
У компонентов деление на run-time и design-time довольно таки условное. Кинутый на форму компонент УЖЕ работает точно так же, как он работает и в программе. Поэтому для компонента понятие design-time означает всего лишь то, что он работает в среде IDE, а не в среде программы.
> Но есть и другие способы.
Хотелось бы подробностей. Какими способами можно отобразить ЛЮБОЙ компонент в Object Inspector"е, не используя RTTI ?
← →
DevilDevil © (2014-01-21 23:12) [208]> Rouse_ © (21.01.14 19:50) [202]
> Как давно ты делал полный билд проекта под MS VC++ ?Если
> тебя выбешивает время компиляции под дельфей, то под студией
> ты должен как минимум пойти и застрелить разработчиков оной,
> пока проект билдится (и вероятно даже успеешь) :)
Приоткрою страницы своей биографии
Моя первая официальная работа программистом отняла у меня 2,5 года жизни. Если её вообще можно назвать жизнью. Я программировал на C++Builder. Это по хлеще вашей Visual Studio было ;)
← →
DevilDevil © (2014-01-21 23:12) [209]> Ega23 © (21.01.14 19:42) [201]
> > напомни название опции, поищуЯ семёрку последний раз видел
> лет шесть назад.
но тем не менее ты утверждаешь, что {$M+} там в опциях есть :)
← →
Ega23 © (2014-01-21 23:17) [210]
> Какими способами можно отобразить ЛЮБОЙ компонент в Object
> Inspector"е, не используя RTTI ?
Не, ну извратиться-то можно. Например, на уровне TComponent унаследовать какой-нить хитрый интерфейс IObjectInspectorProps, в котором уже вот это всё делать.
Но это лютый изврат на фоне существующего мощного механизма.
> Я программировал на C++Builder.
Среда как среда.
← →
Ega23 © (2014-01-21 23:20) [211]
> но тем не менее ты утверждаешь, что {$M+} там в опциях есть
Вот поверь, ради того, чтобы найти, где эта опция там в настройках включается, я не буду искать семёрку на торрентах и пытаться её локально развернуть.
Но уж ежели на {$B-} и {$B+} чекбокс сподобились запуздырить...
← →
DevilDevil © (2014-01-21 23:22) [212]> Юрий Зотов © (21.01.14 21:34) [207]
Юрий, я утверждаю, что поменяв всего несколько вещей в подходах, компания Embarcadero смогла бы легко сократить время компиляции и размер exe.
Те вещи, которые Вы комментируете - были ответом на вопрос "как тогда быть в design-time, если published свойства не будут попадать в RTTI (в real-time)"
Если после пояснения Вы всё же будете настаивать на вопросах [207] - я отвечу. Но хочется надеяться, в этом больше нет необходимости
← →
DevilDevil © (2014-01-21 23:25) [213]> Ega23 © (21.01.14 23:20) [211]
> Вот поверь, ради того, чтобы найти, где эта опция там в
> настройках включается, я не буду искать семёрку на торрентах
> и пытаться её локально развернуть.Но уж ежели на {$B-} и
> {$B+} чекбокс сподобились запуздырить...
Я тебе мягко намекаю на то, что твои выпады были бы адекватны, если бы на них были основания. Но оснований нет
← →
Ega23 © (2014-01-21 23:45) [214]А может и нет такой галки.
Только один хрен TPersistent под {$M+} объявлен.
← →
DevilDevil © (2014-01-21 23:46) [215]но не TObject, от которого наследуется TSome
← →
Ega23 © (2014-01-21 23:48) [216]
> но не TObject, от которого наследуется TSome
Не тот. Ну а толку-то?
Не, можно, конечно, написать свои компоненты, с шахматами и поэтессами. А смысл?
← →
DevilDevil © (2014-01-21 23:54) [217]Смысл в том, чтобы согласиться с высказываниями [184] и [185]
И впредь проявлять чуть большее уважения к высказываниям форумчан
← →
Юрий Зотов © (2014-01-22 00:02) [218]> Ega23 © (21.01.14 23:17) [210]
Олег, попробуй определить интерфейс IObjectInspectorProps - так, чтобы с его помощью можно было отобразить в Object Inspector ЛЮБЫЕ свойства ЛЮБОГО компонента. В том числе, ЛЮБОГО самописного.
> Ega23 © (21.01.14 23:20) [211]
Директива {$M+} явно прописана прямо в коде VCL, в модуле Classes, непосредственно перед объявлением TPersistent (по крайней мере, в D1-D7). И понятно, почему - потому что именно от TPersistent наследуется все то, что отображается в IDE.
> DevilDevil © (21.01.14 23:22) [212]
1. В сокращении времени компиляции нет никакой необходимости, в Delphi оно и без того мало. Овчинка не стоит выделки.
2. Все же мне хотелось бы увидеть пример отображения в Object Inspector ЛЮБЫХ свойств ЛЮБОГО компонента без использования RTTI. Я действительно не представляю, как это можно сделать.
← →
vuk © (2014-01-22 00:12) [219]to Юрий Зотов © (22.01.14 00:02) [218]:
> Все же мне хотелось бы увидеть пример отображения в Object
> Inspector ЛЮБЫХ свойств ЛЮБОГО компонента без использования
> RTTI. Я действительно не представляю, как это можно сделать.
>
Что-то типа IDispatch и иже с ним?
← →
DevilDevil © (2014-01-22 00:24) [220]> Юрий Зотов © (22.01.14 00:02) [218]
> 1. В сокращении времени компиляции нет никакой необходимости,
> в Delphi оно и без того мало. Овчинка не стоит выделки.
Видимо для Вас это не на столько критично, насколько для меня. Всё, что дольше секунды - для меня долго. Поэтому я не пересаживаюсь на XE
> 2. Все же мне хотелось бы увидеть пример отображения в Object
> Inspector ЛЮБЫХ свойств ЛЮБОГО компонента без использования
> RTTI. Я действительно не представляю, как это можно сделать.
Ну пример Вы врядли увидите, но описать один из возможных вариантов такой реализации я в состоянии. Обусловимся, что в design-time bpl-е компилируются все published-свойства. Соответственно при компиляции Delphi знает о каждом свойстве - как получается, как изменяется. Соответственно по каждому свойству хранится 2 указателя на функцию - одна геттер, другая сеттер. Если свойство реально использует геттер или сеттер тогда указатель содержит реально скомпилированную функцию. Если свойство читается/изменяется по полю - тогда генерируется JIT функция, взаимодействующая непосредственно с полем.
Согласен, путь published RTTI в design-time выглядит проще всего. Но и вариант, описанный выше, - тоже имеет право на существование
← →
Дмитрий Белькевич (2014-01-22 00:26) [221]Реально не знаю, что ты, DevilDevil, такое там собираешь. Наш самый толстый проект. 790 тысяч строк, 44 формы, build около 10-ти секунд, compile - 4. D2010. По-моему резульататы отличные. Мне особенно сравнивать не с чем, я кроме как с Delphi ни с чем не работал, но меня скорость компиляции вполне устраивает. Опять же - всё таки написание программ (по крайней мере у меня :) ) отнимает достаточно много времени в раздумиях, написании кода и отладке. Компилирую не очень часто, build так вообще может быть раз в 3-4 дня или реже. У каждого свой стиль, конечно. Но на мой взгляд время компиляции в delphi отличное.
У себя давно сделал:
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) FIELDS([]) PROPERTIES([])}
← →
Дмитрий Белькевич (2014-01-22 00:30) [222]По поводу размера. Размеры экзешников под Андроид, скажем так, удивили :)
Есть у нас один проект - справочник, размер довольно критичен при установке "по воздуху". И качать 20-ти мегабайтную программу, скорее всего, не станут.
Сейчас программа занимает 400 кб, я не сам ей занимаюсь, была бы возможность - то пересобрал бы её на Delphi, но размер экзешника сдерживает.
← →
Юрий Зотов © (2014-01-22 00:31) [223]> vuk © (22.01.14 00:12) [219]
То есть, каждый компонент становится COM-сервером?
← →
DevilDevil © (2014-01-22 00:32) [224]> Дмитрий Белькевич (22.01.14 00:26) [221]
1 секунда лучше, чем 10, согласись ? :)
а вообще я не навязываю свои пристрастия другим людям. Я говорю, что, поменяв концепцию, можно добиться лучших результатов, проработав всего 2 пункта. Вас устраивает, меня нет. Вы выбираете, я остаюсь на Delphi 7. Вот и всё. :)
← →
Юрий Зотов © (2014-01-22 00:36) [225]> DevilDevil © (22.01.14 00:24) [220]
А где же отображение в Object Inspector?
← →
vuk © (2014-01-22 00:42) [226]to Юрий Зотов © (22.01.14 00:31) [223]:
> То есть, каждый компонент становится COM-сервером?
COM - вполне себе компонентная модель, работающая через интерфейсы. Я не говорю, что делать надо именно так. Не надо. :) Но ты спросил - и вот тебе вариант ответа.
← →
DevilDevil © (2014-01-22 00:44) [227]> Юрий Зотов © (22.01.14 00:36) [225]
Понятно, к чему Вы клоните - к тому, что без RTTI никак
И Вы правы
Просто произнося аббревиатуру "RTTI" я подразумеваю непосредственно дельфийский PTypeInfo. И говоря "есть и другие способы", я подразумевал, что можно не использовать Delphi-подход, ставший стандартом
Разумеется в добавок к методу, описанному выше, понадобятся имена свойств и описания их типов. Что технически разумеется подпадает под истинную расшифровку аббревиатуры "RTTI"
← →
Дмитрий Белькевич (2014-01-22 00:47) [228]>1 секунда лучше, чем 10, согласись ? :)
Лучшее враг хорошего, как известно. Почему одна? Почему не 100 мс? Не 10 мс? Не 10 нс? Как на мой вкус, то билд за 10 секунд и компиляция за 3-4 это отличный результат. Ну а нужен реально экстремально быстрый билд - то сиди на 7-ке, кто же тебя выше тянет :) Если бы не юникод и (уже) 64 бита я бы сам на 7-ке сидел.
← →
DevilDevil © (2014-01-22 00:51) [229]> Лучшее враг хорошего, как известно.
только не у перфекционистов
у нас плохо - если не так хорошо, как мог сделать :)
> Почему одна?
потому что, нажимая F9, разница между половиной секунды и одной секундой - не ощутима. А разница между одной секундой и тремя - уже ощутима. В моём случае она конкретно бесит.
← →
Ega23 © (2014-01-22 01:07) [230]Для этого есть Syntax Check.
← →
Пит (2014-01-22 01:10) [231]
> Всё, что дольше секунды - для меня долго
нифига ты быстрый.
← →
jumping jack (2014-01-22 01:12) [232]байзэвэй, говорят, в дотнете (как и других языках/средах с возможностью интерпретации кода) возможно такое чудо, как изменение кода прямо в процессе отладки, на ходу, без перекомпиляции
вот уж где скорость отладки-то реально хороша
← →
имя (2014-01-22 01:13) [233]Удалено модератором
← →
Юрий Зотов © (2014-01-22 01:14) [234]> vuk © (22.01.14 00:42) [226]
Вариант, согласен.
:o)
> DevilDevil © (22.01.14 00:44) [227]
Ну, наверное можно что-то придумать и взамен RTTI. Vuk же предложил вариант. И ведь действительно работать будет. Но какими тогда станут те самые размер кода и время компиляции?
А RTTI - просто, быстро, универсально. И зачем, спрашивается, от него уходить?
← →
antonn © (2014-01-22 08:06) [235]
> jumping jack (22.01.14 01:12) [232]
>
> байзэвэй, говорят, в дотнете (как и других языках/средах
> с возможностью интерпретации кода) возможно такое чудо,
> как изменение кода прямо в процессе отладки, на ходу, без
> перекомпиляции
ну да, удобно, однако работая с несколькими языками все таки привычно по-старинке (а иногда и тупыми мессаджбоксами =))
← →
Sergey Masloff (2014-01-22 09:20) [236]DevilDevil © (22.01.14 00:32) [224]
>> Дмитрий Белькевич (22.01.14 00:26) [221]
>1 секунда лучше, чем 10, согласись ? :)
Можно я не соглашусь? Это вообще без разницы. Проект компилируется 1 раз в день, ну 10 раз... 100 раз ни разу не компилировал. Экономия 9 секунд не стоит вложений. Ни копейки.
Ну теоретически если б она была абсолютно бесплатной то 1 лучше чем 10. Практически - монопенисуально. Свои ресурсы лучше потратить на что-то более полезное...
← →
имя (2014-01-22 09:28) [237]Удалено модератором
← →
DevilDevil © (2014-01-22 09:37) [238]> Юрий Зотов © (22.01.14 01:14) [234]
> Ну, наверное можно что-то придумать и взамен RTTI. Vuk же
> предложил вариант. И ведь действительно работать будет.
> Но какими тогда станут те самые размер кода и время компиляции?
>
> А RTTI - просто, быстро, универсально. И зачем, спрашивается,
> от него уходить?
Вы говорите так, будто COM не подразумевает под собой RTTI :)
Те же имена свойств/методов, указатели на них, информация о типах :)
> Но какими тогда станут те самые размер кода и время компиляции?
design-time bpl-и традиционно большие. Но из них ни байта не попадает в exe. Exe компилируется и линкуется из исходников, design-time bpl работает в IDE. Поэтому логично, что для design-time и для exe должны быть применены разные политики RTTI. Ибо для design-time нужны все свойства и события, а для exe - только малая часть из них.
← →
vuk © (2014-01-22 10:15) [239]to DevilDevil © (22.01.14 09:37) [238]:
> а для exe - только малая часть из них.
Засада только одна - это неизвестно, какая часть.
← →
DevilDevil © (2014-01-22 10:23) [240]> vuk © (22.01.14 10:15) [239]
> Засада только одна - это неизвестно, какая часть.
На дворе 21 век. И современные компиляторы вполне успешно справляются с задачей определения, какой код прилинковывать, а какой нет :)
Страницы: 1 2 3 4 5 6 7 8 9
10 вся ветка
Текущий архив: 2014.08.17;
Скачать: CL | DM;
Память: 1.08 MB
Время: 0.044 c