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

Прочее

С тех пор как FireDAC стал частью RAD Studio, и в моём блоге появилось несколько постов, посвященных данному продукту, меня время от времени спрашивают как сделать с помощью FireDAC те или иные вещи. При чем, в большинстве случаев вопрошающие пытаются переложить свой опыт использования других компонентов доступа к данным (что вполне логично). К сожалению, описывать многочисленные нюансы работы с FireDAC просто не хватает времени. Да и опыт работы с FireDAC ограничен в основном созданием мобильных приложений.

Буквально вчера я наткнулся на весьма не плохой туториал от Дениса Симонова.

Создание приложений для СУБД Firebird с использованием различных компонент и драйверов: FireDac.

Рекомендую.

Двухмесячное затишье в моем блоге было связано отчасти с занятостью, а отчасти с возникшими в очередной раз техническими проблемами. В третий раз на протяжении полугода пришлось менять хостера. Речь идёт не только о блоге, который вы читаете, но и о проекте DelphiFeeds.ru. Надеюсь, что на этот раз всё окончательно нормализовалось и проект будет функционировать в штатном режиме.

Пока же немного новостей. Идея агрегатора тематических блогов продолжает сохранять актуальность. На этот раз новостные ленты всех MVP собрал непосредственно вендор. Так сказать, из первых рук.

Еще одна большая новость от EmbarcaderoInterbase 2017. Здесь вы можете ознакомиться с пресс-релизом.

И, конечно, специальные акционные предложения от Embarcadero.

1. До 31 марта вы можете обновить Delphi\C++ Builder\RAD Studio с любой предыдущей версии по цене обновления.

2. До 31 марта при покупке RAD Studio, Delphi или C++Builder старших редакций вы получаете скидку, дополнительные месяцы подписки, а так же бесплатные лицензии на дополнительные продукты:

  • Architect: Скидка 15% + Бесплатно RAD Server site license ($5,000) + 15 месяцев подписки + Бесплатно Bonus Pack ($899).
  • Enterprise: Скидка 10% + Бесплатно FREE RAD Server 10-device license ($899) + 14 месяцев подписки + Бесплатно Bonus Pack ($899).
  • Pro: Бесплатно Bonus Pack ($899).

Ссылки на продукты:

Ну, а главное ожидание сезона – поддержка Linux в Delphi 10.2. Ниже приведу несколько полезных ссылок, которые позволят подготовиться к установке и настройке нового продукта:

 

 

 

В заключение пара слов о накопленном материале и анонс ближайших постов.

Благодаря счастливому стечению обстоятельств удалось выкроить время и сделать собственный FireMonkey стиль. Конечно не идеально, только для Android и только в одном разрешении. Но результатами работы впечатлениями планирую поделиться.

И еще написал небольшой модуль, позволяющий в логе CodeSite выводить содержимое набора данных. Очень полезно при отладке DB -приложений, особенно с замысловатыми алгоритмами. Тоже планирую опубликовать.

О выборе версии Delphi для разработки проектов написано уже достаточно. Почему я решил снова обратиться к этой изъезженной теме?

Причины две. Во-первых, вопрос о выборе Delphi продолжают задавать. Во-вторых, существует достаточное количество “экспертов”, которые с упорством революционных активистов продолжают утверждать, что архаичные версии Delphi являются панацеей и не менее упорно отрицают все преимущества современных версий. Да. Не смотря на то, что на дворе XXI век.

К сожалению, следует признать тот факт, что большинство вакансий для Delphi программистов так или иначе связаны с поддержкой старых проектов. И, опять же, большинство из этих проектов реализованы на Delphi 7. Только в прошлом году мне пришлось столкнуться с двумя такими проектами. И простите мне мою безапелляционность, но я считаю, правильным названием было бы что-то подобное: “Почему следует отказаться от использования Delphi 7 прямо сейчас?!”

Ниже я постараюсь аргументировать свою точку зрения по пунктам и с примерами.

1. Поддержка Unicode.

Здесь уже написано много, не буду повторяться. Замечу только, что поддержка Unicode это то, чего просили пользователи ещё во времена Borland и это первое, что сделала Embarcadero, приобретя продукт. За что ей большое спасибо. Читать далее

Небольшой пост-шпаргалка. Буду предельно краток.

Допустим, у нас есть некий перечисляемый тип. Например:

  TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord, // 0..4
ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime, // 5..11
ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo, // 12..18
ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString, // 19..24
ftLargeint, ftADT, ftArray, ftReference, ftDataSet, ftOraBlob, ftOraClob, // 25..31
ftVariant, ftInterface, ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd, // 32..37
ftFixedWideChar, ftWideMemo, ftOraTimeStamp, ftOraInterval, // 38..41
ftLongWord, ftShortint, ftByte, ftExtended, ftConnection, ftParams, ftStream, //42..48
ftTimeStampOffset, ftObject, ftSingle); //49..51

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

GetEnumName(TypeInfo(TFieldType), Ord(aDataSet.Fields[I].DataType));

На выходе получаем строку, содержащую название типа для поля aDataSet.Fields[I].

Обновление сайта DelphiFeeds.ru назревало давно. Но, так уж получилось, что только этим летом я решился его сделать. И вот, после довольно продолжительной паузы, новый сайт запущен.

Что же поменялось, кроме дизайна?

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

Кроме того, авторы, которые размещают свои статьи на площадках, которые не парсятся автоматически (например, Хабр или официальный сайт Embarcadero), так же смогут сами разместить ссылки на DelphiFeeds.Ru.

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

Что нужно для того, что бы получить данные своей учётной записи?

Напишите мне info<собака>delphifeeds.ru и я пришлю вам данные, необходимые для входа. Впрочем, с большинством блоггеров я сам свяжусь в ближайшее время.

Поскольку новый DelphiFeeds сделан на WordPress, я думаю, любой блоггер без проблем разберётся с тем как добавить/отредактировать свой материал. Естественно, как и раньше, все публикации будут модерироваться и проверяться “на адекватность” и соответствие тематике.

В качестве варианта я рассматриваю систему голосования, которая будет автоматически снимать с публикации не понравившиеся читателям посты.

На сегодняшний день основную часть RSS лент, собранных в старой версии сайта я подключил. Оставшиеся блоги подтяну в ближайшее время. Если у вас есть неизвестные мне блоги или материалы, ссылки на которые вы хотите видеть на сайте – пишите.

Идеи и предложения по поводу развития проекта так же приветствуются. Так же приветствуется любая поддержка проекта рекламодателями – пишите!

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

И ещё один вопрос.

Все материалы старого сайта у меня сохранились. Как вы считаете, имеет ли смысл каким-то образом опубликовать архив ссылок на старые публикации? Например, в виде приложения.

В очередной раз вышло так, что вроде бы и есть о чём рассказать, но катастрофически не хватает времени. Поэтому обо всём вкратце.

Начну с плохих новостей. В конце прошлого года Microsoft обновил MS Office. Событие само по себе неприятное. Вдвойне оно неприятно потому, что у меня купленный Office 365 и эта беда коснулась меня лично. И вовсе наивно думать, что после обновления всё, что работало, по-прежнему работает. Когда такое было? Драйвер ODBC перестал поддерживать старые форматы файлов MS Access (*.mdb). При чём у кого-то воспроизводится, у кого-то нет. У меня воспроизводится точно. Казалось бы при чём тут Delphi? А всё просто, ни FireDAC, ни UniDAC теперь тупо не могут прицепиться к mdb базе. А я, между прочим, с ними работаю! Пришлось снести офис и всё волшебным образом заработало.

Беда одна не ходит! По крайней мере, в случае с Microsoft это правило работает без сбоев. Там объявили, что Windows 7 и более поздние версии Windows больше не будут считать действительными программы, подписанные с помощью SHA1. Подробнее всё доступно изложено здесь. В связи с чем также пришлось потратить определённое количество времени.

А ещё я действительно боюсь, что у меня нет выбора!

Читать далее

Минитест на знание VCL

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

Вчера попался мне примерно такой код (я его немного упростил):

procedure TfTest.Button2Click(Sender: TObject);
var
  i: integer;
begin
  i := 0;
  while PageControl1.PageCount > 1 do
  begin
    if PageControl1.ActivePageIndex = i then
    begin
      Inc(i);
      Continue;
    end;

    PageControl1.Pages[i].Free;
  end;
end;

Задача вполне тривиальная. Необходимо удалить все страницы PageControl’а кроме активной. Понятно, что реализация не самая элегантная, но на первый взгляд код вполне рабочий. Найдёте ошибку не заглядывая под кат?

Читать далее

БезымянныйНа фоне последних событий а мире Delphi незамеченной осталась книжная новинка. Обучение мобильной разработке на Delphi. Автор книги, наверняка, хорошо  вам знаком. Это Всеволод Леонов. Да, да. Тот самый Всеволод Леонов, который ещё пару лет назад работал в Enbarcadero, проводил вебинары и колесил по всему СНГ, представляя новые продукты компании. Иными словами, компетентность автора сомнений не вызывает. Но отличительной чертой книги, помимо её бесплатности, является то, что она рассчитана на начинающих. Именно то, чего долгое не хватало новичкам для “быстрого старта”. Изначально книга задумывалась, как книга для школьников. Однако, я не скажу, что она совсем уж детская. Студентам и просто начинающим программистам, вероятно, она будет вполне интересна. У меня даже возникла ассоциация с книгами Архангельского.

Впрочем, не буду много рассказывать о самой книге, вы ее можете бесплатно скачать. А я, не мог не воспользоваться своими дружескими отношениями с автором, и взял у него интервью, текст которого привожу ниже.

- Сев, привет. Книгу написал?
– Да, Саш, есть такое. Сам от себя не ожидал, но сложились обстоятельства.

– Какие обстоятельства?
– Прежде всего с переходом в Samsung программирование перестало быть постоянным занятием. Образовался вакуум, который нельзя заполнить ничем, кроме как опять программированием. Такая была гигантская тоска по тому, чем занимался со школьной скамьи.

– Не обязательно было писать книгу. Писал бы блог.
– Порывался. Но потом мы в Samsung совместно с Embarcadero сделали такой “кейс” для школьников. Ежегодно в Москве проводится конкурс “Школа реальных дел”, где команды получают “задание” от вендоров. Мы вместе в прошлом году курировали проекты команд на тему “разработка электронного учебника на Delphi”. Работал я, Сергей Терлецкий и Денис Васильев. Екатерина Макарова тоже помогала. Наш “кейс” стал “образцово-показательным” в масштабах Москвы. Но без книг было трудно.

– Почему? Можно было сделать вебинары…
– Да, мы их и делали. Я вёл “проектную” часть вместе с Сергеем, Денис – чисто “дельфовую”. Но нужна была именно книга в виде “методички”, т.е. сборка пошаговых инструкций с объяснениями по созданию приложения. Читать далее

Сегодня партнеры и клиенты компании Embarcadero получили письмо от Ренди Якобса, CEO компании IDERA, Inc. Я, посчитал, что русскоязычный вариант этого письмо следует выложить в блог, как это сделал из один из наших англоязычных коллег. А заодно выскажу свои соображения по данному поводу.

Я тоже читал, обсуждения в форумах (хотя и не встревал в дискуссии), общался с коллегами и, конечно, переживал за судьбу продукта, который кормит меня на протяжении практически всей моей профессиональной карьеры. Лично меня беспокоило два вопроса. Во-первых то, что  IDERA, образно говоря, DB-шная компания, и далеко не факт, что у них найдется желание и ресурсы для развития нового направления. Я имею введу средства разработки. Во-вторых, интересовало, как IDERA будет выстраивать отношение с Delphi сообществом, и будет ли компания вообще заниматься этим.

В принципе сейчас, мои ожидания можно охарактеризовать как умеренно оптимистичные. Мы получили определенные ответы на означенные выше вопросы. И, по крайней мере, стало понятно, что IDERA  планирует не просто развивать средства разработки Embarcadero (пока я называю эту группу продуктов так), но и имеет определенное виденье этого развития. И, очевидно, скоро мы увидим внятный Road Map.

Ну, а сам факт письма является подтверждением намерений IDERA выстраивать отношения с коммюнити. Так, что надеюсь, для Delphi сообщества, в том числе и русскоязычного, всё сложится наилучшим образом. Поэтому книги по Java и C# отвожу обратно в гараж и привожу полный текст письма Ренди Якобса.

Читать далее

Итак, релиз RAD Studio XE8 увидел свет и у меня появилась возможность познакомиться с продуктом на практике.

Первое, что бросается в глаза в процессе установки новой версии RAD Studio – размер дистрибутива. Iso- образ занимает 6,7  Гб. Но есть и хорошая новость. Мне удалось закачать дистрибутив на довольно приличной скорости, раньше со скоростью закачки частенько возникали проблемы.

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

startScreenXE8

Впрочем банальной  “косметикой” новшества не ограничились. Я постараюсь, насколько это возможно,  систематизировать рассказ об изменениях в последней версии Delphi.

Прежде всего, обновился формат справочной системы. Справка в формате .chm загружается моментально, что меня очень порадовало.

Набор расширений IDE Castalia, который был доступен зарегистрированным пользователям XE7, в XE8 поставляется “в коробке”. Как по мне, самый полезный инструмент из этого набора – подсветка структуры кода

Castalia

Вообще, Embarcadero довольно активно расширяет функциональность Delphi продуктами сторонних производителей, включая их в поставку. Еще одной “новинкой” стал менеджер пакетов GetIt, который позволяет скачать и установить более десятка пакетов и библиотек из набора  TurboPack. Сюда вошли ставшие бесплатными хорошо известные продукты компании Turbo Power, а также некоторые другие компоненты. Подробнее о них вы можете прочесть в блоге Марко Канту.

Интересна сама идея встроить загрузку и установку компонентов или пакетов в IDE. В меню Tools пункт GetIt позволяет вызвать диалог следующего вида.

Getit

Теперь загрузку и установку компонентов можно выполнить буквально в один клик. И это не метафора. Удобно. К слову, среди библиотек GetIt есть и библиотеки для FireMonkey, предназначенные для работы на мобильных платформах. Думаю, большинство из этих библиотек достойны отдельного обзора.

Если говорить о сторонних компонентах, то все, что было в предыдущих версиях Delphi осталось. FastReport, по-прежнему устанавливается отдельно (дистрибутив размещен на официальном сайте и доступен зарегистрированным пользователям). То же самое относится и к AQtime Standard и IP*Works. Любимый мною инструмент логирования CodeSite не поделил пути с полной версией для XE7 и отказался загружаться. Впрочем, не думаю, что “помирить” разные версии продукта окажется большой проблемой.

Новой возможностью RAD Studio стала поддержка физического движка Box2D. Собственно, сами модули для использования Box2D в Delphi существовали довольно давно, но теперь они включены в стандартный комплект (находятся в папке C:\Program Files (x86)\Embarcadero\Studio\16.0\source\FlatBox2D ).

Так же в XE8 появилась поддержка платформы тестирования DUnitX.

Похоже с каждой новой версией Delphi расширяется и список поддерживаемых систем контроля версий. На этот раз добавилась поддержка Mercurial.

vcs

Интересной и удобной новинкой в XE8 стал Settings Migration Tool (Инструмент переноса настроек). Он позволяет переносить настройки между любыми (начиная с Delphi 7, если верить документации) версиями Delphi/RAD Studio или AppMethod. Настройки  экспортируются в xml-файл и/или в реестр и восстанавливаются оттуда. Сам инструмент migrationtool.exe находится в папке C:\Program Files (x86)\Embarcadero\Studio\16.0\bin.

migration

Я попробовал запустить утилиту, но к сожалению, установленные на моей машине Delphi 2010 и Delphi 2007 не обнаружились в списке доступных версий.

migration2

Впрочем, сам спектр настроек старых и новых версий RAD Studio довольно серьезно разнится и вряд ли тут можно полностью положиться на утилиту. А вот при переносе настроек на другую машину или при смене очередной версии Delphi на более новую, утилита может оказать весьма полезной. Хотя и здесь следует быть аккуратным, поскольку можно безвозвратно утратить текущие настройки и попросту “завалить” IDE.

В контексте настроек IDE стоит упомянуть о новой опции Customer Experience Program. Если она включена, то будут собираться анонимные данные о действиях пользователей в IDE, что должно способствовать улучшению качества продукта. Данную опцию можно отключить Tools > Options > Environment Options > Customer Experience Program.

Об изменениях в VCL, RTL и, конечно же в FireMonkey я расскажу в следующих частях обзора. А пока пара слов об изменениях в механизме лицензирования. Владельцы версий XE3-XE7 (XE3 только до 30 июня 2015 года) могут приобрести могут приобрести XE8 по цене обновления. При этом цена на обновление с XE7 та же, что и на обновление с других версий. Новая позиция Recharge Renewal from XE7 доступна только для тех, кто купил  Recharge на XE7 и покупает Recharge на XE8.

До 31 мая 2015 на полные лицензии и апгрейд (за исключением 5-pack и 10-pack) объявлена специальная цена –  -10% от обычной.

Действительные цены на продукты в рублях приведены по ссылка ниже:

Delphi XE8

C++ Builder XE8

RAD Studio XE8

 


780_198_11

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



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