Motto

В тихом саду здравомыслия
Пусть на вас постоянно падают
кокосовые орехи пробужденности.
Чогьям Трунгпа РИНПОЧЕ


Версия для мобильного


Показаны сообщения с ярлыком Blogroll. Показать все сообщения
Показаны сообщения с ярлыком Blogroll. Показать все сообщения

воскресенье, 27 марта 2016 г.

Lazy Delphi Builder 1.14.14.356 доступен

В этом блоге, последний раз я выкладывал анонс версии 1.10.9.269 от 2014-03-15. Новые версии продолжали выходить, я о них писал на сайте проекта и на страничке Lazy Delphi Builder в Google+.
Пользователям версии 1.10.9.269 от 2014-03-15 настоятельно рекомендую обновиться – была исправлена критическая ошибка приводившая к раздуванию файла LazyDBP и торможению работы.
Основные нововведения опишу здесь. За деталями – добро пожаловать в history_en.txt.
Большие изменения
  • Добавлена поддержка "portable" инсталляций (нужен только dccXX.exe и папка Lib)
  • Поддержка Delphi XE8-Seattle
  • Добавлен тулбар и горячие клавиши для навигации по build log
  • Интерфейс больше не блокируется на время компиляции (Application.ProcessMessages наше всё)
  • Режим /noop – когда никаких реальных действий с файлами не предпринимается
  • Preset-ы для установленных в IDE packages
  • Возможность добавить выделенные папки в IDE Library Search Paths или IDE Browsing Paths
  • Поддержка относительных путей. Как относительно текущей папки так и относительно папки с LazyDBP профилем. (добавлена встроенная переменная $(BUILTIN_PROFILE_DIR))
  • Диалог с настройками. Теперь можно отключить удаление файлов в Корзину по-человечески, с помощью галочки
  • Новые параметры командной строки: /buildReleaseDcu /ResFileMasks /urb /noop /v
  • Команда Undo "build" (alpha) - восстанавливает Output folders из резервной копии (.bak) после неудачной сборки.
  • переименование прямо в дереве с файлами (F2) (без Undo)
  • Исправлена куча ошибок (особенно в консольной версии). Спасибо за баг-репорты!

Скриншоты

Редактор Portable инсталляций:


Навигация в Build log:




Читать дальше..

среда, 19 марта 2014 г.

AppMethod: первые впечатления от trial-a

 

Установщик trial-a скачивался не то чтобы быстро. 50мб тянулись дольше 10 минут. Причём, это ограничение со стороны Embarcadero (по крайней мере, для Латвии), так как обычно такие файлы скачиваются за пару секунд.

Зато сама установка прошла минут за 20 (включая скачивание всех пакетов). Однако не стоит забывать что это trial версия и исходные коды RTL и FMX не устанавливались. Также, вроде не устанавливался ни Fast Report, ни логгер-забыл-как-он-там-называется, ни Beyond compare.

Первое, что бросается в глаза - переделанный внешний вид. Все иконки на основных тулбарах заменены (на плоские иконки (оппа-metro-style!) без антиалиасинга).

AppMethod main form

Созданный в Delphi XE5 проекты открылись, собрались установились в телефон и заработали без каких-либо проблем.

Внимание, если при запуске программы на Android устройстве у вас появляется Linker error, то это значит, что скорее всего вы забыли сделать rebuild проекту.

 

Мне не удалось проверить работу Lazy Delphi Builder, так как с trial-ом вместо рабочего dcc32 всегда ставится mock exe-шка только и умеющая что выводить текст:

This version of the product does not support command line compiling.

Хорошая же новость в том, что Lazy Delphi Builder всё ж таки определяет установленный AppMethod и находит файлы компиляторов. Так что, по идее, должно работать. (я проверял с 269 билдом)

Резюмируя: если б мне не приходилось большую часть времени заниматься сопровождением VCL проектов, я бы с огромным удовольствием переключился на AppMethod.

p.s. (= И кстати, эта версия носит почётный 13й номер и ставится в папку Embarcadero\Appmethod\13.0\


Читать дальше..

вторник, 18 марта 2014 г.

Официально вышел AppMethod

 

Trial версию можно получить тут: http://www.appmethod.com/free-trial (требуется простейшая регистрация, ключ приходит на email).

На цены можно посмотреть тут: http://www.appmethod.com/pricing

 

Бесплатной версии судя по всему нету. FAQ на страничке Embarcadero теперь утверждает следующее:

Q) I read there will be a free edition of Appmethod. Any additional information on this?

As part of our plan to make Appmethod available to as many developers as possible, we have discussed and considered a free Appmethod subscription level for release at a future date. If a free subscription level is made available, it will have platform, form factor, screen size, feature, and distribution restrictions. While there has been discussion of a free Appmethod edition, there is as of yet no official committed plan to release a free edition beyond a Free Trial Edition.

Я это понимаю так:

Бесплатная версия возможно и появится в будущем, но у неё будут ограничения по платформам, form factor, размеру экрана, фичам и ограничения по распостранению. Хотя возможность предоставления бесплатной подписки и обсуждалось, в данный момент официально подтвержденного плана выпустить бесплатную версию нет. Но за trial платить не надо.

p.s. кстати, в качестве issue tracker-a для AppMethod Embarcadero предлагает использовать Jira! bye bye Quality Central? Подмигивающая рожица


Читать дальше..

воскресенье, 16 марта 2014 г.

Lazy Delphi Builder 1.10.9.269 от 15.03.2014.

Выложил небольшой апдейт. В основном это исправление багов.

15.03.2014. Lazy Delphi Builder 1.10.9.269:
0. Исправлено: угадывание версий Delphi не работало для XE5, XE6
1. Исправлено: некорректно отображалось название для XE6 (спасибо nda за репорт)
2. Изменено: reset build status теперь работает для выделенных нескольких узлов
3. Исправлено: если lazyDbp файл загружался через Recent меню, его название не попадало в диалоги Open/Save
4. Изменено: добавлена пара новых правил для угадайки версии Delphi (не работало для VirtualTreeview)
5. Новое: создание при компиляции файлов для C++ Builder (чекбокс в Build dialog). NB: Если C++ Builder не установлен, то вообще ничего компилироваться не будет! (такова особенность dcc32 + моих рук)

Скачивать на bitbucket.

As seen on torry.net!

 


Читать дальше..

суббота, 15 марта 2014 г.

Спаси Delphi, помоги зоопарку: GSmart Aku A1

Всеволод как-то предложил описать устройства, которые можно успешно использовать для разработки на Delphi XE5. Вот мои пять евроцентов.

1. Автор обзора: Алексей Тимохин

2. Название телефона: Gigabyte GSmart Aku A1 (год выпуска 2013). Мощный (quad core) и бюджетный (5000-6000 рублей) телефон. Слабые места: камера, экран (углы обзора). Ссылка на обсуждение Aku A1 на форуме 4pda – там же можно найти отзывы и ответ на любой вопрос.

3. Как ставилось, были ли сложности, "лекарство", трюки, чудо (оно как-то само), шаманство и т. д. Драйвер из ASDK не сработал. Помог драйвер с официального сайта.

4. Фото телефона:

2014-03-15 14_40_58-DSC06505

5. Разное: недорогое мощное устройство с 2 sim-картами. На момент покупки (декабрь 2013) Aku A1 лидировал по соотношению цена/производительность+отсутствие проблем. Из недостатков – плохие углы обзора (искажение цветов), внутренняя память очень быстро забивается (тут мне помог рут и удаление части предустановленного барахла).

У меня не возникало никаких проблем с запуском программ написанных на Delphi. (проверял разные демки а также и программы опубликованные в Play Store).


Читать дальше..

пятница, 7 марта 2014 г.

AppMethod – новая IDE только для Firemonkey от Embarcadero.

И кстати, пользуясь случаем хочу передать привет хочу дать ссылку на Roadmap для Delphi на 2014 год.


Embarcadero готовит что-то новенькое. Причём, у этого чего-то еще будет и бесплатная редакция. Последняя бесплатная IDE, насколько я помню была у Turbo Delphi в далёком 2006, которая вроде даже была довольно популярна несмотря на некоторые ограничения.

Продукт будет называться AppMethod. И будет представлять собой версию RAD Studio только для Firemonkey (без VCL). Для пользователей полной RAD Studio, продукт скорее всего не будет представлять интереса. А вот для новых клиентов заинтересованных в кроссплатформенной разработке, это должно быть интересно.

Согласно информации от Techcrunch, нам обещают бесплатную редакцию для индивидуальных разработчиков (которая будет поддерживать сборку под Android и deploy максимум на 5 устройств (интересно, как это будет ограничиваться)).

Коммерческие лицензии будут доступны по подписке на год.

 

Имхо

Хотя подписка на год и портит всю малину, но всё-равно браво, маркетологи Embarcadero.

Причины:

  • Во-первых, в IDE будет меньше package-й - и запуск IDE должен стать быстрее.
  • Во-вторых, меньше компонентов в палитре, что упростит повседневную работу (особенно для тех, кто только начинает) как пользователям, так и службе поддержки.
  • В-третьих, бесплатная версия для Android - отличный ход для популяризации Firemonkey. Одна из характерных черт Android платформы там больше любят халяву. Там больше бесплатных приложений. Хотелось бы мечтать, что бесплатная версия всё же позволит публиковаться в Google Play, но что-то подсказывает мне что нет. Что ж. Будем меняться исходниками. Стимулируя Open Source, я надеюсь выиграет всё сообщество Delphi разработчиков.
  • В-четвертых, новый бренд. молодцы, интересный ход. Упоминание Delphi почему-то частенько вызывает ярко-выраженную аллергическую реакцию. Посмотрим как с этим пойдёт.

Ложки дёгтя:

  • AppMethod, не такой выговариваемый, как Делфи. Сравните: делфи, делфай, аппмитод, аппметод.
  • Годовая подписка. А что через год - что ли нельзя больше ничего собрать будет?
  • Годовая подписка за разработчика/за платформу. Хотите 4 платформы - умножайте на 4?

Источники:

p.s. В публичном доступе – с 18 марта (дата найдена в интернетах).


Читать дальше..

пятница, 28 февраля 2014 г.

Lazy Delphi Builder 1.10.8.268 Alpha от 27.02.2014.

Скачивать здесь

Очень много нововведений. Существенно переписано ядро. Экспериментальный устаревший TasksEx отвечавший за работу в фоне, заменен на Awaitable модуль от Романа Янковского.

Если обнаружите ошибку, пожалуйста, сообщите.


История изменений

  1. Новое:
    1. Возможность использовать dccaarm, dcciosarm, dccios32 для сборки
    2. Появилась возможность компилировать только debug или только release - в Build dialog добавлена галочка Build release dcus.
    3. Добавлены preset-ы для scan file masks
    4. Добавлен preset "default" чтобы дать возможность сбросить настройки к значениям по умолчанию. Реализовано для: output directories, file scan masks
    5. В диалоге Build settings теперь показывается страница настроек Search Paths
    6. Выводить Total build time в конце билда
    7. В дереве файлов: Check Wizard (Ctrl+W) - диалог дающий возможность выделить/снять выделение с файлов относящихся к выбранной версии Delphi.
    8. Menu -> File -> добавлен пункт Merge profile, который позволяет обновить текущий профиль данными из другого профиля.
    9. Base out dir теперь сохраняется в LazyDBP файле.
    10. Оптимизирована скорость обработки найденных файлов
    11. В дереве файлов для проектов и пакетов:
      1. Теперь можно увидеть статус сборки (build status) (?? - не собирался, ok - собрался корректно, er - ошибка компиляции)
      2. Фильтр теперь прячет папки в которых нет ни одного видимого файла
      3. В всплывающее меню добавлены команды:
        1. Сброс статус компиляции (может быть полезно, если вы хотите пересобрать этот пакет в режиме Continue Build) - Скопировать в буфер обмена лог инсталляции Найти проблемный пакет в Build Log-е
        2. В Info panel теперь показывается к какой версии Delphi относится данный файл (угадайка).
  2. Исправления:
    1. При загрузке профиля из файла, игнорируется указанная в нём версия Delphi
    2. В диалоге Build settings при запуске в temp/test mode не блокируются пресеты в каталогах - можно загрузить пресет и изменить папку
    3. Игнорировалась значение указанное в Break after N errors (Build settings)
    4. Если в профиле была указана инсталляция: XE 3 Architect. А на машине, где загружаем этот профиль установлена Enterprise - то внешне все будет выглядеть прилично, но при нажатии на Compile появится ошибка Assertion failure (uLazyIdeProxy.pas, line 886) LazyInstaller.CurrentInstallation not assigned.
    5. При очистке профиля не очищается список Environment variables и Lazy Search paths
    6. Для namespaces показывается некорректный список Recent(MRU)
    7. В Build диалоге не отрисовывался фон в визарде
  3. UI:
    1. Installation log переименован в Build log
    2. Блокировать пункт меню Edit -> Find, если текущая закладка не поддерживает поиск
    3. В Save as диалог теперь подставляется имя файла загруженного профиля
    4. Build dialog: добавить возможность указать CustomCompiler (раньше это можно было сделать только напрямую в файле LazyDBP).
    5. В статусной строке теперь показывается количество проектов собранных с ошибкой.
    6. В дереве файлов оптимизирована скорость переключения из режима списка в режим дерева. (теперь быстрее примерно на 46%)

Читать дальше..

четверг, 20 февраля 2014 г.

Лучшее в Delphi блогах за 2013 год.

 Обновлено 2014.02.21 22:34

Подборка ссылок на лучшие публикации по Delphi за 2013 год.


Аналогичные подборки за предыдущие годы:


Читать дальше..

воскресенье, 29 декабря 2013 г.

Delphi XE5: впечатления от разработки под Android

Отправил свою программу на конкурс. Саму программу показывать пока не хочу. А хочу поделиться своими впечатлениями от использования Delphi XE5 и Firemonkey.

 

Сразу оговорюсь

  • Это мой первый проект на Firemonkey и первый опыт разработки для Android.
  • Я использовал Delphi XE5 + Update 1 + все хотфиксы для Update 1.
  • Тестировал только на телефоне GSmart Aku A1 (480 x 854 pixels, 4.5 inches (~218 ppi). Эмуляторы не использовал.
  • Часто компилировал и запускал на Win32 в режиме Mobile Preview (об этом ниже).
  • В этом проекте решил опробовать подход "как-мне-кажется-это-делают-в-java", когда и для каждого класса создавал отдельный .pas файл. В результате получилась куча юнитов и чтобы в них не запутаться пришлось раскидать их по папкам и пространствам имён. Получилось в принципе удобно. Хотя есть у меня подозрение, что сборка проекта под Android из-за этого работал медленнее, чем в случае, если бы весь код был запихан в один .pas файл.

Грабли

Deployment manager и папки

Deployment manager и папки. С этим тоже пришлось повозиться прежде чем удалось понять какие надо указывать пути в Deployment manager и как потом найти эти файлы в программе. Пришлось провести небольшое исследование. О нём напишу позже, в отдельном посте. Вот только так и не понял, как же из приложения определить путь до корня SdCard. Также не понравился UI в Deployment manager-e. Редактирование пары десятков файлов сделано не очень удобно, хотя к слову сказать просто добавить пачку файлов довольно легко.

Сразу уточню, что я хотел недокументированного. Искал легкий способ добавления/редактирования файлов в Deployment manager из консоли. Не получилось, так файлы добавленные через Deployment manager поначалу сохраняются в .dproj файле, хотя в папке проекта и присутствует отдельный файл .deployproj. И я так и не понял в какой момент файлы переносятся из .dproj в .deployproj файл. Вот кстати наткнулся на пост о похожем исследовании от Павла Алхимова “DeployFolder - Развёртывание мобильного подкаталога”.


Читать дальше..

воскресенье, 20 октября 2013 г.

Легкий способ проверить Android устройство на совместимость с Delphi XE5.

Как узнать будет ли работать программа сделанная в Delphi XE5 на Android устройстве.

Начну сразу с простейшего способа. Официальная спецификация – ниже.

All-the-Myriad-Androids-Animoca

Неофициальные способы

Легкий способ проверить своё устройство

  1. Надо установить на телефон маленькую программку SysCheck от Christopher Moeller (не требует никаких прав).
  2. Запустить.
  3. И посмотреть на первые 3 строчки отчёта.

Там будет указана версия ARM (нужна v7), версия OS (2.3.3-2.3.7 и 4.0.3-4.3)  и указано поддерживается ли NEON (должно быть yes).

Источник

Список из 118 проверенных устройств

Jim McKeeth опубликовал список из 118 протестированных устройств (зеркало, html версия). Список получен с помощью сервиса Apkudo. Этот сервис позволяет загрузить свой APK, и проверить его работу на большом количестве разных устройств.

Для проверки Jim использовал простейшую программку типа Hello World.

Из 118 устройств APK установился только на 108 (на остальных был либо тайм-аут либо не хватило свободного места). Из 108 устройств, программка не запустилась только на 3.

  • Проверено устройств: 118
  • Не установилось на: 10
  • Зависло (Application not responding) на: 3
  • Успешно запустилось на: 105
  • Процент успеха: 89%

Источник

Официальные способы

Соответствие спецификации

Поддерживаются устройства архитектуры ARMv7 и ОС:

Название ОС Android

Версия ОС Android

API Levels

Jelly Bean

Android 4.1.x, 4.2.x, 4.3.x

API Levels 16, 17, 18

Ice Cream Sandwich

Android 4.0.3 and 4.0.4

API Level 15

Gingerbread

Android 2.3.3 - 2.3.7

API Level 10

Не поддерживается:

  • Honeycomb (Android 3.x)
  • Эмулятор Gingerbread
  • Устройства на процессоре Tegra 2 (поддержка NEON обязательна)

Ссылка на официальную документацию.

Список проверенных устройств от Embarcadero

Список можно найти в официальной документации от Эмбаркадэро.

Сюда копировать не буду. Если интересно – сходите по ссылке.

http://docwiki.embarcadero.com/RADStudio/XE5/en/Android_Devices_Supported_for_Application_Development#Results_of_Our_Android_Device_Testing

p.s. Забавно, но в Google Play уже появились и платные программки для проверки устройств на совместимость с Delphi ХЕ5. Стервятники, такие стервятники.


Читать дальше..

пятница, 11 октября 2013 г.

Ссылка: Почему веб-приложения на мобильных платформах работают медленно

 

Delphi XE5 дает возможность создавать нативные приложения и для десктопа и мобильных платформ (пока что Android и iOs). Единый код, UI, все дела.

Но зачем мне для этого покупать Delphi, воскликнет искушенный читатель? Я возьму какой-нибудь бесплатный мобильный Javascript фреймворк (Cordova, PhoneGap и другие) и сделаю то же самое. Не спеши, читатель, отвечу ему я. Ведь Javascript может оказаться слиииииишком медленным.

И вот одна статья на эту тему. Только сегодня! Только на нашей арене! Javascript против нативного кода! Сравнение производительности и предсказании будущего! Статья опубликована на Хабре 8 августа 2013.

Почему веб-приложения на мобильных платформах работают медленно

 

Статья по ссылке реально большая. И я позволю себе скопировать сюда выводы.

Вот что следует помнить:
* в 2013 году JavaScript является слишком медленным, чтобы его можно было использовать на мобильных устройствах для создания приложений типа обработки фотографий и пр.:
— он в 5 раз медленнее нативного кода;
— он сравним с IE8;
— он медленнее, чем x86 C/C++, примерно в 50 раз;
— он медленнее, чем серверные Java/Ruby/Python/C# примерно в 10 раз, если программа выделяет не больше 35 Мб памяти и резко замедляется при дальнейшем выделении памяти;
* Наиболее реальный способ его разогнать — это увеличить производительность процессора до уровня десктопа. Возможно это и произойдет, но не в ближайшем будущем;
* Сам язык последнее время нисколько не ускорился и его разработчики утверждают, что при сохранении языка и API, производительность никогда не догонит нативный код;
* Сборщик мусора сильно тормозит при ограниченном количестве доступной памяти. Он ведет себя сильно хуже, чем на декстопах или серверах;
* Каждый мобильный разработчик, независимо от того — использует он сборку мусора или нет — тщательно продумывает работу с памятью;
* JavaScript в настоящий момент фундаментально против того, чтобы даже попробовать оценить расход памяти на мобильных устройствах;
* Даже если они захотят дать эту возможность, опыт подсказывает, что сделать это будет очень трудно;
* Есть надежда на asm.js, но он, скорее, напоминает C\C++, чем что-то динамическое типа JS.


Читать дальше..

четверг, 3 октября 2013 г.

Delphi XE5 с поддержкой Андроида. Первые впечатления.

Delphi XE5 art

Не то, чтобы я очень ждал выхода Delphi XE5. Поначалу. На самом деле я даже не следил за новостями. Но за пару недель до релиза (как это выяснилось позднее) ситуация поменялась. Только-только стали появляться первые обзоры от бета тестеров XE5. А я решил проверить будет ли мой Lazy Delphi Builder работать с компиляторами от XE5.

Зарегистрировался на участие в бета тесте, стал следить за новостями и как-то потихоньку втянулся в активное ожидание, с ежедневной проверкой DelphiFeeds на тему новостей. Я как-то даже не верил, что у Embarcadero получится. Уж очень амбициозная цель была поставлена. Но у них получилось. Молодцы!

Доступа к бете я тогда так и не дождался – через неделю вышла полная версия.

Попытка первая.

Очень интересно, заработает ли у меня. Будет ли всё действительно просто – или придётся сначала потанцевать с бубном.

Trial установлен. В наличии имеется пара часов свободного времени и старенький Samsung Galaxy Mini, который как выяснилось позже, просто не поддерживается.

Времени читать документацию нет. Пара часов пролетает в лихорадочной доустановке Android SDK, NDK, настройке IDE и попытках запустить какую-нибудь демку на телефоне (Oppa-Delphi-Style!). Сначала получил ошибку о несовпадающей версии API. Потом выяснилось, что в телефоне не хватает места. Пара часов пролетела как пара минут оставив за собой дымный след несбывшихся надежд.

Попытка вторая.

Ко второй попытке я подошел основательнее. Скачал и установил наисвежаиший Android SDK. Взял другой телефонный аппарат, которые точно поддерживается Delphi XE5. На этот раз экспериментировал с Gigabyte GSmart Aku A1. Телефон тоже бюджетный но вышедший в августе 2013.

И засел за эксперименты.

В этот раз всё прошло как по маслу. Единственная проблемка с которой пришлось столкнуться связана с телефоном. Поиск USB драйвера для телефона превратился в квест. Windows 7 его сам не нашёл, стандартный USB драйвер из ASDK тоже не покатил. Нашёлся же драйвер "в самом неожиданном месте" - на сайте производителя (но тоже не сразу - спасибо форуму 4pda за наводку на правильный линк).

p.s. Собирал и устанавливал в телефон из IDE. Теперь интересно, можно ли это сделать из командной строки. (Lazy Delphi Builder тут бессилен, так как умеет только компилировать)


Читать дальше..

воскресенье, 15 сентября 2013 г.

Lazy Delphi Builder 1.9.7.251. 15-сен-2013 для XE5 и XE6

Для тех, кто не в курсе: Lazy Delphi Builder даёт возможность пересобрать всё что надо используя только .pas файлы. И поддерживать порядок, складывая все dcu-шки в одно определённое место. Лицензия - халява.

Сценарии использования:

  1. Пересобрать все свои компоненты/библиотеки из исходников с нуля (актуально в случае апгрейда, чистки)
  2. Сборка нового релиза (всё собирается с нуля из pas-файлов)
  3. Установка новых больших библиотек чтобы поиграться (или пересборка старых с новыми директивами)

История изменений

  1. Новое: теперь можно выбирать платформу для компиляции. Пока поддерживаются Win32, Win64 и OSX. Это сделано через замену вызова dcc32 на вызов dcc64 или dccOSX. Для использования других платформ, можно указывать нужный dcc вручную (см. пункт 9 в release notes к версии 1.8.6.240)
    Как выбрать компилятор для Win64 и OSX
  2. Новое: теперь можно изменять число ошибок, после которого Lazy Builder останавливает билд (по-умолчанию 2, как и в предыдущих версиях)
    Параметры сборки
  3. Исправлено: Access Violation при нажатии кнопки "Load preset", который возникал при пустом списке (спасибо за отчёты об ошибках)
  4. Исправлено: в выходных папках нельзя было использовать Unicode-ные (не-ansi) символы. Реализовано так: преобразование в OEM теперь выполняется только для Delphi версий младше чем D2009 (я не нашёл точной информации о том, начиная с каких версий Delphi и Windows, корректно поддерживается Юникод в командной строке, если что-то не будет работать - пишите).
  5. Исправлено: Удаление package из IDE не работало для Delphi версий младше чем XE2.
  6. Исправлено: Дерево с файлами: зависание при попытке посмотреть детальную инфу о проблменом (erroneous) пакете или проекте.
  7. Исправлено (надеюсь): иногда невозможно изменить выбранную версию Delphi после компиляции
  8. Minor: исправлены подсказки на закладке "Scan settings"
  9. Minor: во всех текстах dcc32 был переименован в dccXX
  10. Добавлена поддержка Delphi XE6 =)

Скачать можно отсюда.

Ссылки по теме


Читать дальше..

воскресенье, 28 апреля 2013 г.

Lazy Delphi Builder 1.8.6.240 от 28-04-2013 для Delphi XE4 и XE5

Что нового (вкратце):

  • Поддержка Delphi XE4. И на всякий случай, сразу и Delphi XE5, - вдруг выйдет через месяц =)
  • Профили (мини). Теперь можно сохранять профили групп настроек для дальнейшего использования. Сделано для: выходных папок, настроек билда, переменных окружения и других мелочей (см. ниже).
  • Изменён формат хранения списков в файлах LazyDBP и ini. Теперь без цифр – а это значит, что сравнить два файла в Diff-viewer-е станет совсем просто. И кстати, теперь все настройки будут сохраняться в подкаталоге Data. Новый формат профилей не имеет обратной совместимости со старым. Но возможность сохранить в старом формате осталась в Save As диалоге.
  • Поддержка нескольких выражений в фильтре дерева (через точку с запятой “;”)
  • Появилась возможность вместо dcc32.exe подставлять свой файл. Это может быть .bat-ник, может быть .exe. А может быть и dcc64.exe (см. пункт 9 в истории изменений)
  • Добавлено автоопределение версии Delphi по названию файла пакета (см. Check Wizard)
  • Появился редактор для compiler defines в виде CheckListBox-а
  • Много мелких улучшений и исправлений (подробный список под катом, и в архиве с программой).

Скачивать на домашней странице: http://www.lazyproject.info/downloads/ или здесь


Читать дальше..

пятница, 29 марта 2013 г.

Головокружительные возможности DI и Delphi Spring. Часть 9. Один интерфейс – несколько реализаций.

Это последний перевод из серии про внедрение зависимостей на примере использования Delphi Spring.
Это перевод публикации Ника Ходжеса от 07 ноября 2011 года: Getting Giddy with Dependency Injection and Delphi Spring #9 – One Interface, Many Implementations. (перевод сделан с разрешения автора).

Все переводы по Spring


Как обычно, Delphi Spring Framework можно скачать с GoogleCode
До сих пор мы регистрировали интерфейсы и их реализации в соотношении один к одному. Для каждого интерфейса регистрировался только один реализующий класс. Но что, если мы хотим реализовать интерфейс разными способами, выбирая реализацию в зависимости от выбора пользователя или других внешних факторов?
К счастью для нас, контейнер Spring предоставляет такую возможность. Система регистрации контейнера в фреймворке Delphi Spring позволяет при каждой регистрации указать имя предоставляемой реализации, давая таким образом возможность отличать одну регистрацию от другой, даже если они регистрируют разные реализации для одного и того же интерфейса.
При регистрации нескольких реализаций одного интерфейса без указания имени «победит последний».

Читать дальше..

понедельник, 11 марта 2013 г.

Лучшее в Delphi блогах за 2012 год

Все лучшие публикации по Delphi за 2012 год в одном месте. Радует, что качество публикаций растёт с каждым годом. 

Рад видеть среди новых авторов Александра Багеля (Rouse_), чьи советы и наработки опубликованные на форумах не раз мне помогали. Также, рад видеть новых авторов из Embarcadero (и особенно Сергея Рощина).

Отдельно рекомендую обратить внимание на:

  • Перевод справочной системы Delphi (тем, кто не читает на английском)
  • Серию постов Александра Багеля (изучаем отладчик)
  • Разделы Инструменты и компоненты
  • Статью “Разработка через тестирование”
  • Материалы по Delphi Spring
  • Все публикации и переводы Александра Алексеева


Подборки ссылок за предыдущие годы:


Читать дальше..

пятница, 21 сентября 2012 г.

Revised Object Inspector для Delphi 2010-XE3 от Uwe Schuster. Обзор.

Этот пост является укороченным переводом описания первой версии Продвинутого Инспектора Объектов из блога Uwe.


Не так давно, коллега рассказал про расширение для Delphi замещающий стандартный инспектор объектов альтернативным, с поддержкой фильтра и функции любимых свойств. Пользуюсь этим расширением уже месяц в Delphi XE. Работает стабильно.

На данный момент Revised Object Inspector поддерживает Delphi 2010, Delphi XE, XE2 и XE3. На 21 сентября 2012 года последней версией является Beta 6.

Автор эксперта: Uwe Schuster. Uwe также является активным разработчиком Version Insight Plus, Modal Search Dialog expert, Platforms Expert, IDE Compiler Utils, а также Jedi Version Control System.

См. также:

Вот так выглядит Revised Object Inspector. Отличия в закладке Favorites и строке фильтрации.

 Продвинутый Object Inspector


Читать дальше..

воскресенье, 16 сентября 2012 г.

Головокружительные возможности Dependency Injection и Delphi Spring. Часть 8. Разное.

Это перевод публикации Ника Ходжеса от 5 ноября 2011 года: Getting Giddy with Dependency Injection and Delphi Spring #8 – Miscellanea. (перевод сделан с разрешения автора).


Все переводы по Spring


Как обычно, Delphi Spring Framework можно скачать с GoogleCode.

На данный момент мы познакомились со значительной частью основ внедрения зависимости. И это далеко не всё, нам ещё много чего предстоит узнать, но именно в этой статье я хочу остановиться и обсудить пару вещей, о которые стоит поговорить подробнее. Так что лишних церемоний, вот они в виде списка:

  • Как вы наверно заметили, я призываю вас использовать интерфейсы при кодировании и регистрировать классы, реализующие эти интерфейсы в фреймворке. О чём я забыл упомянуть явно, это о том, что все интерфейсы, зарегистрированные в фреймворке Spring должны иметь GUID. GUID легко добавить, нажав CTRL+SHIFT+G в редакторе кода Delphi. А если же вы попробуете использовать интерфейс, у которого нет GUID-а, то получите ошибку: “Project <НазваниеПроекта>.exe raised exception class ERegistrationException with message 'Non-Guid Interface Services are not supported.” («Интерфейсы без Guid не поддерживаются»).
     
  • Если внимательно посмотреть на код в демонстрационных проектах, то можно заметить, что прежде чем что-либо делать с контейнером Spring, необходимо вызвать GlobalContainer.Build. Этот метод должен быть вызван до того, как что-либо может быть получено из ServiceLocator. Метод Build это код, который собирает воедино все зарегистрированные классы, создаёт экземпляры классов или подготавливает их к созданию по запросу, с учётом указанного времени жизни. Если при запуске приложения вы получаете ошибку 'LifetimeTypeManager was expected.', то это с большой вероятностью означает, что вам необходимо вызвать Build для вашего контейнера. И в самом деле, метод Build является основой вашего контейнера Внедрения Зависимостей. Вы должны один раз вызвать метод Build в корне вашего приложения. Для Delphi разработчиков это означает, что он должен быть вызван одной из первых строчек в вашем DPR-файле. Это также означает, что классы лучше регистрировать как можно раньше.
     
  • Вы не обязаны использовать Global Container и Service Locator предоставляемые вам фреймворком. Создание своих собственных вариантов более чем приветствуется. У нас в Gateway Ticketing мы сделали следующее: мы объявили интерфейс, являющийся полной абстракцией понятия Контейнер DI (DI Container = Контейнер Обращения Зависимостей), а затем реализовали этот интерфейс самостоятельно, используя наследника от Tcontainer из фреймворка Delphi Spring. Таким образом, если в фреймворке что-то изменяется (а он действительно меняется с тех самых пор, как мы начали его использовать) или, если мы решим использовать другой контейнер, наш код полностью отделён от какой-либо конкретной реализации. Ещё один хороший пример следования правилу «Пиши код для абстракций, а не реализации». :)
     
  • Я вынужден отметить, что некоторые считают концепцию Service Locator анти-паттерном . Сам я пока что ещё не пришёл к твёрдому заключению по этому вопросу. Да, Service Locator почти всегда является Одиночкой, но я лично и не рассматриваю одиночек только для чтения как что-то плохое, в отличие от некоторых. (Одиночка для чтения и для записи, по сути, является глобальной переменной, и я думаю, что все согласятся с тем, что глобальные переменные являются Порождением Сатаны.) Однако существуют некоторые разногласия в том, является ли использование контейнера реализацией Service Locator. Кроме того, если все зависимости определены до того, как результат выполнения станет доступным пользователю, то можно ли вообще считать контейнер переменной? Это остается предметом дискуссий. В конечном счете, для меня ценность и польза от Service Locator с лихвой перевешивает все возможные недостатки.
     
  • Существует один недостаток, возвращающий нас к предыдущему пункту, который заключается в том, что когда вещи настолько отделены друг от друга и позднее связывание настолько ярко выражено, то становится возможным успешно собрать программу и до самого её запуска так и не узнать о том, что мы забыли зарегистрировать необходимый реализующий класс. В сложной системе, может пройти немало времени, прежде чем кто-либо заметит, что отсутствует реализующий класс для какого-нибудь редко используемого интерфейса. Если вы следуете предложенному мной образцу регистрации реализации в initialization секции модуля, то вы обязаны использовать этот модуль где-нибудь в программе (примечание переводчика: включить в uses), чтобы регистрация сработала. Как уже говорилось, если вы забыли его добавить, и не включили этот модуль в свою программу, то компилятор вам ничего не скажет, и узнаете вы об этом только во время работы программы. Это слабое место, и вам следует быть очень внимательным, чтобы не попасться в эту ловушку. В качестве стратегии можно рассматривать выделение всех регистраций в единый модуль, или использовать что-то типа статического анализа кода, который проверит, что для каждого вызова GetService есть соответствующий вызов RegisterService (или как там эти методы у вас называются). Просто, чтобы вы были в курсе.

Это всего лишь несколько вещей, на которые стоит обратить внимание, при использовании Dependency Injection в вашем коде. Я говорил это раньше, я скажу это снова: Если вы не используете Dependency Injection, значит, вы работаете неправильно.


Ссылки по теме


Читать дальше..

пятница, 14 сентября 2012 г.

Lazy Delphi Builder 1.7.5.232 от 13-09-2012 для Delphi XE3

Lazy Delphi Builder XE3 Logo

Что нового (вкратце):

  • LazyDBP файлы сохранялись в Ansi кодировке. Теперь будут в UTF8.
  • Исправлен "бесконечный" List index out of bounds(-1) на 4й закладке.
  • Отправка мейла вместе со всеми логами и файлами прямо из программы
  • В дереве с файлами новый фильтр: показать только ошибочные пакеты и проекты.
  • Для консольной версии тихий режим /quiet
  • Много мелких улучшений в GUI и консольной версии (подробный список под катом, и в архиве с программой).

Скачивать на домашней странице: http://www.lazyproject.info/downloads/ или здесь


Читать дальше..

среда, 5 сентября 2012 г.

Lazy Delphi Builder 1.7.3.217 от 05-09-2012 для Delphi XE3

Что нового

  • Добавлена поддержка Delphi XE3.
  • Drag and drop. Теперь можно просто перетаскивать файлы и папки прямо в дерево из проводника.
  • Поддержка NameSpaces. В предыдущих версиях, при компиляции для Delphi XE2 можно было получить ошибку компилятора Fatal: F1026 File not found: 'Windows.dcu'" (мог быть и другой модуль). Чтобы эту ошибку обойти, нужно было добавить в dcc params строчку -NSSystem;System.Win;WinAPI;Vcl;Vcl.Imaging;Data. Теперь в диалог сборки добавлен отдельный редактор для NameSpaces.
  • Сборка проектов в отдельном потоке
  • Исправлены ошибки связанные с удалением файлов из дерева.

Скачивать на домашней странице: http://www.lazyproject.info/downloads/ или здесь


Читать дальше..

Постоянные читатели