Блог Александра Божко
Архивы
Рубрики

Обзоры

Сегодня новые продукты поколения XE6 появились в продаже у официальных реселлеров:

 Delphi XE6 от 38238,21 руб.

C++ Builder XE6 от 38238.21 руб.

RAD Studio XE6 от 69152,65 руб.

Я же тем временем, как и обещал, начинаю публиковать небольшой обзор. Так уж получилось, что тестировать новую версию Delphi/RAD Studio мне пришлось на абсолютно новом ПК. Более того, вместо привычной Windows 7, теперь придется работать на 8.1, да еще и 64-битной. Использование современных операционок от Microsoft привносит неповторимые ощущения в процесс мобильной разработки. Но это  отдельная тема, которую я, безусловно, затрону.

Главное, что ожидалось от нового релиза RAD Studio, это повышение качества и надежности продукта. Чего греха таить, нарекания на качество продукта были. Были нарекания и на скорость работы. Забегая вперед скажу, список исправленных багов более чем внушителен. Но кроме этого были добавлены и новые возможности, в том числе и для VCL приложений.

И, конечно, гвоздь программы — поддержка разработки под Android  в  C++ Builder.

Обо всем этом я планирую рассказать чуть позже, а пока, непосредственно впечатления от увиденного.

Для установки я использовал iso-образ. Размер дистрибутива оказался немного больше, чем у Rad Studio XE5. Никаких неожиданностей при установке не возникло. Обратил на себя внимание лишь обновленный дизайн установщика. Как и для предыдущей версии, отдельные дополнительные компоненты и инструменты доустанавливаются отдельно. На момент написания материала для зарегистрированных пользователей доступны:

Читать далее

В своем блоге Марко Канту показал приложение, написанное на Delphi – Android клиент для англоязычного DelphiFeeds. Я решил проверить не фейк ли это :) Немного модифицировал код и получил клиент для DelphiFeeds.Ru. Вышло вполне рабочее приложение.

AndroidScreen

К сожалению, RSS DelphiFeeds.Ru не отображает авторов оригинальных постов, поэтому приложение придется немного доработать. Заодно можно и оснастить дополнительным функционалом (закладки, фильтры и т.д.). Такое приложение вполне можно будет засабмитить в GooglePlay. Интересно, а способствуют-ли подобные приложения продвижению сайтов?

Ниже привожу скриншот для предыдущего поста. Кстати, программа, снимающая скриншоты с Android устройств также написана на Delphi.

AndroidScreen2.

В контексте своих предыдущих постов я неоднократно упоминал те или иные компоненты доступа к данным. В данном обзоре я хочу рассказать о продуктах компании DevArt. В мире Delphi эта компания хорошо известна именно благодаря компонентам доступа к данным. Если вы искали с помощью чего подключиться, например, к Oracle или Postgre SQL, то наверняка обращали внимание на ODAC или PgDAC, соответственно.

В настоящий момент компания предлагает несколько специализированых библиотек для подключения к различным СУБД (Interbase/FireBird, Oracle, Postgre SQL, MySQL, SQLite, MS SQL). Кроме этого, существует универсальное решение – UniDAC. Эта библиотека поддерживает различные СУБД, подключаясь к ним различным способом (см. схему). “Самые быстрые и надежные решения для работы с любыми базами данных” – гласит слоган на русскоязычной странице библиотеки.

Совершенно недавно я получил возможность на практике познакомиться с возможностями  UniDAC, использовав данный набор в проекте DB Meta Studio. Сама функциональность данного приложения предполагает универсальность и возможность работать с разными СУБД. Здесь я попытаюсь дать общее представление о UniDAC и поделиться своими субъективными впечатлениями. Читать далее

Одной из отличительных особенностей современных IDE является набор инструментов, делающих разработку комфортной. И Delphi здесь не исключение. От версии к версии эта среда разработки “обрастает” новыми полезными инструментами, что не может не радовать. Скажу честно, когда мне приходится запускать Delphi 7 для того, что бы посмотреть какой-нибудь старый проект, я уже испытываю чувство дискомфорта. Многих полезных вещей там попросту не хватает. В последних же версиях Delphi стало появляться столько всего полезного, что некоторые инструменты попросту остались незамеченными. В частности, лично я пропустил появление в комплекте Delphi мощной утилиты для сравнения текста – Beyond Compare. Она не особо афишировалась, и

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

Beyond Compare Lite включен в состав RAD Studio, начиная с версии XE (собственно, утилита доступна и тем, кто покупает Delphi или C++ Builder отдельно). Вызывается она из IDE (Edit | Compare) или путем запуска исполняемого файла BCompareLite.exe, размещенного в каталоге Bin. Лично я вывел иконку  Beyond Compare Lite на рабочий стол и зачастую использую отдельно, не запуская IDE.

Читать далее

Как вы знаете, начиная с XE2 в Delphi в качестве встроенного генератора отчетов используется специальная версия FastReport.

И единственная проблема, которая в связи с этим возникает – перевод старых отчетов, написанных на Rave, на Fast Report. К счастью, команда Fast Reports Inc. позаботилась о пользователях и предоставила конвертер отчетов из Rave в Fast Report. Детально процедура использования конвертера описана в блоге Антона Хайрудинова.

Совершенно недавно я попробовал преобразовать некоторые из отчетов в моем рабочем проекте на FR. И мне это удалось! Однако, были нюансы, о которых ниже.

По сути, конвертер отчетов представляет собой один единственный модуль (ConverterRR2FR.pas). Он поставляется с исходным кодом, и, в свою очередь, использует следующие модули:

{ FastReport }

frxClass,
frxBarCode,
frxBarcod,
frxADOComponents,
frxBDEComponents,
frxDBXComponents,
frxIBXComponents,
frxCustomDB,

{ RaveReport }

RpDefine,
RpRave,
RpBase,
RpSystem,
RpBars,
RvClass,
RvProj,
RvCsRpt,
RvDefine,
RvCsStd,
RvCsBars,
RvCsDraw,
RvCsData,
RvDatabase,
RvDriverDataView;

Вот тут и начинается самое интересное. Прежде всего, XE2 стала последней версией, в которой присутствовал Rave Report.

В Delphi XE3 Rave Report уже нет!

А модули RR нужны, иначе ConverterRR2FR.pas попросту не откомпилируется. Как следствие, единственная версия Delphi, в которой вы можете использовать данный инструмент, без дополнительных ухищрений – XE2. Однако, здесь уместно напомнить, что все владельцы XE3 автоматически получают лицензию и на предыдущие версии соответствующих продуктов. В том числе, и на XE2.

Вторая сложность заключается в том, что ConverterRR2FR при работе использует модули, которых нет в Embarcadero редакции FastReport (frxADOComponents,  frxBDEComponents,  frxDBXComponents, frxIBXComponents). И здесь следует воспользоваться недвусмысленными рекомендациями форума поддержки:

FR Embarcadero Edition dosn’t support internal datasets. So, easy way – install FR Trial and convert Rave reports. Other way – comment all references to internal datasets classes in ConverterRR2FR.pas

FR Embarcadero Edition не поддерживает внутренних датасетов. Поэтому простейший вариант – установить FR Trial и преобразовать отчеты Rave. Второй способ – закомментировать все ссылки на классы внутренних датасетов в ConverterRR2FR.pas.

Я воспользовался первым вариантом.

Собственно, далее процесс преобразования полностью соответствовал описанию в блоге. Если вы четко представляете себе, что у вас имеется, и что вы хотите получить, то процедура доработки и подключения вновь созданных отчетов не займет много времени.

В принципе все зависит от исходных отчетов. В моем случае их около 30. “История успеха”, описанная на том же форуме поддержки свидетельствует об успешном преобразовании более чем 300 отчетов.

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

В одном из следующих постов я собираюсь рассказать о значительно более веселой и трепетной во всех отношениях процедуре. А именно, о сабмите Delphi приложения на Microsoft AppStore.

Не скрою, что основной проблемой FireMonkey, в том виде, в котором платформа была презентована в RAD Studio XE2, лично мне виделась неудобная работа с БД. Прежде всего, речь идет о визуализации данных. Напомню, что в FireMonkey нет так называемых db-aware компонентов. Связывание производится с использованием механизма LiveBinding. Это вызывало определенные затруднения у разработчиков.

Естественно, именно работа с данными, это  первое, что я хотел посмотреть в FM2. К тому же, тех, кто планирует купить Delphi до 28 сентября ожидает подарок – TMS Grid for FireMonkey. Насколько мне известно, это единственный полноценный грид для FireMonkey от сторонних разработчиков.

Я сделал небольшое тестовое приложение. Для тестового примера я использовал БД  MS Access. Приведенное ниже видео демонстрирует настройку соединения.

Первое, что меня приятно приятно удивило это Visual LiveBinding. В своем примере я использовал TMS Grid for FireMonkey, который до 28 сентября прилагается в подарок к Delphi, C++ Builder и RAD Studio XE3. Подключение грида к источнику данных производится буквально с помощью пары щелчков мышки. По сути это не сложнее чем в VCL.

Читать далее

В сегодняшнем посте речь пойдёт о продукте FinalBuilder. Он поставляется вместе с Embarcadero RAD Studio и я, наконец-то, нашел время немного разобраться с ним.

Для чего это нужно?

График моей работы предполагает еженедельный выпуск билда программного продукта. Что имеется ввиду? Один раз в неделю я делаю примерно следующую последовательность действий:

  • собираю проект в Release конфигурации;
  • обновляю и компилирую языковые файлы;
  • разношу собранные файлы в нужные директории;
  • криптую проект ASProtect‘ом;
  • обновляю скрипты сетапа;
  • собираю сетап;
  • загружаю файлы в хранилище;
  • рассылаю уведомления.

Кроме этого создание и сохранение бекапов и много других рутинных операций. Конечно, каждый проект имеет собственную специфику. Где-то используются различные системы контроля версий, что-то распространяется с исходными кодами в архиве. Но практически везде существует изрядный список однотипных операций, повторяющихся при выпуске каждого билда. Читать далее

DUCK DUCK DELPHI – замечательный, на мой взгляд, проект, иллюстрирующий возможности RTTI в Delphi. Автор Jason Southwell.
Проект представляет собой модуль, реализующий duck typing.
Вместо
if obj is TControl then
TCoontrol(obj).Visible := True
вы можете написать
obj.duck.sett(‘Visible’,True);
Или так, если нужно установить видимость для всех объектов.
Self.duck.all.has(‘Visible’).sett(True);

Одной из самых неприятных проблем при переводе проекта на старшую версию Delphi стала локализация. Я использую “родной” инструментарий. Подробно он описан в блоге Александра Алексеева.

На первый взгляд, языковые проекты нормально конвертируются. Более того, несмотря на то, что в Delphi 2007 специфические символы в переводах не отображаются правильно, *.dfn файлы (те в которых хранятся переводы ресурсов формы) содержат юникод строки. Поэтому, если эти проекты пересобрать в Delphi 2009/2010/XE, то все ранее вбитые переводы будут выглядеть так, как они должны выглядеть без дополнительных телодвижений:

translate

Но при детальном рассмотрении, выявляются некоторые артефакты.

Вот так будет отрабатываться казалось бы обычный код MessageDlg(‘To continue please restart the application.’, mtWarning, [mbOK], 0); на том же чешском языке.

artefact

Читать далее

vr-online

В октябрьском номере журнала:

Intro

IT-News
Hard-News

VrIP персона

– Андрей Ширяев: интервью с создателем сайта rce.su

КОДИНГ

– Android. Простое приложение для Android
– Android. Переходы между формами
– Android. Использование диалогов
- Delphi. Разбираемся с TVirtual TreeView и TEasyLIstView Читать далее

Продукты DevArt
Купить онлайн:



Читай русскоязычные Delphi блоги
Каталог блогов Blogdir.ru
Яндекс.Метрика