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

Delphi

С февраля месяца 2013-го года начинается серия вебинаров Developer Direct. Ближайший вебинар начнется менее чем через час.

Вам нужно зарегистрироваться всего 1 раз!

Эти вебинары в максимально благоприятном для восприятия режиме будут проходить раз в неделю. Представители Embarcadero и внешние эксперты расскажут о наиболее актуальных вопросах разработки современных бизнес-приложений. Вы также можете присылать свои предложения и вопросы заранее, а в ходе вебинаров мы будем давать на них ответы. Также вы можете задавать вопросы, выходящие за рамки анонсированных тем.

1 Февраля 2013 г.
12:00
Мастер-класс по разработке компонентов FireMonkey 2.0
Ярослав Бровин
8 февраля 2013 г.
12:00
Как создается и развивается FastReports от первого лица
Михаил Филипенко
22 февраля 2013 г.
12:00
Мобильная разработка в Delphi под iOS
Всеволод Леонов
1 марта 2013 г.
12:00
Оценка производительности БД на примере InterBase под Mac OS
Дмитрий Кузьменко
14 марта 2013 г.
12:00
Поддержка стандарта C++11 в C++Builder… и для Delphi-разработчиков тоже
Всеволод Леонов
22 марта 2013 г.
12:00
Мастер-класс по созданию приложений под iOS на Delphi
Всеволод Леонов, Ярослав Бровин

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

Поэтому я задействовал TApplicationEvents и два события этого компонента – onModalBegin и onModalEnd. Абсолютно ничего сложного,

 

procedure TForm1.ApplicationEvents1ModalBegin(Sender: TObject);
begin
 flg:= True;
end;

procedure TForm1.ApplicationEvents1ModalEnd(Sender: TObject);
begin
 flg:= False;
end;

procedure TForm1.TrayIcon1Click(Sender: TObject);
begin
if not flg then
ShowMessage('');
end;

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

Исходный код.

Сегодня был выпущен Update 2 для RAD Studio XE3, Delphi XE3 и C++Builder XE3.

Зарегистрированные пользователи могут забрать обновление здесь. Размер 94 М.

Из описания релиза следует, что в данный Update включено обновление для 64-битной версии C++ Builder и обновление файлов справки для Delphi.

Список багов, исправленных в данном релизе.

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

В качестве альтернативного варианта, вы можете скачать  iso образ Rad Studio с включенным Update 2.

 

Год начался бодренько. Что называется, с корабля на бал. С одной стороны работы навалилось так, что было не до блога, с другой – работа же и подкидывает материалы для этого самого блога. Забегая немного вперед скажу, что планирую серию статей, посвященных DataSnap и Android клиентам для DataSnap. Кроме того, вполне вероятно, что получит развитие тема ER/Studio. Ну, а пока весь этот материал “в работе”, я проанонсирую новую рубрику.

Разминка для ума. Суть в следующем. В процессе разработки реальных приложений, я сталкиваюсь с различными, интересными, на мой взгляд, задачами. Эти задачи отнюдь не будут относиться к разряду “нерешаемых”, просто в большинстве случаев, они будут содержать какие-то интересные моменты, либо, это будут просто “типовые” задачи, которые надо уметь решать точно так же, как надо уметь ловить третью даму на руке противника.

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

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

Я реализовал это примерно так.

Задача имеет некоторые “подводные камни”, на которые я в свое время успешно напоролся. Собственно, предлагаю вам размяться и найти оптимально решение.

Выпущено первое обновление Delphi, C++ Builder и RAD Studio XE3.

Доступно для скачивания зарегистрированными пользователями.

Новый C++Builder 64-битный компилятор доступен для редакции Professional  и выше.

Процесс установки обновления предполагает полную переустановку XE3. (Закачивается до 3,5 Гб, в зависимости от выбранных компонентов).

Для тех, кто до сих пор не попробовал XE3 – ссылка на триальную версию (обновление включено).

Для зарегистрированных пользователей также доступен iso-образ.

Напоминаю, что только до Нового года у вас есть возможность купить по цене обновления Delphi, C++ Builder или RAD Studio с любой из предыдущих версий. Акцией могут воспользоваться и владельцы лицензий Turbo Professional. Подробнее обо всех действующих акциях.

Для резидентов Украины дополнительная акция от ООО ДиСи Линк. При покупке любого из средств разработки в редакции Professional и выше – подписка на Blase Pascal Magazine (русская редакция) в подарок.

 Внимание!

С 1 января 2013 года ожидается увеличение стоимости продуктов редакции Professional на 10%.

Как вы знаете, начиная с 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.

Выпущено обновление справочной системы  Help Update 1 для Delphi и C++Builder XE3. Обновление доступно зарегистрированным пользователям.

Добавлены следующие разделы:

Так же, для зарегистрированных пользователей продуктов XE, XE2 and XE3 доступен 120 страничный бесплатный выпуск Blase Pascal Magazine.

Содержание:

  • Interview with Kim Madsen
  • Sending mails using Lazarus By Michael Van Canneyt
  • Interview with Dmitry Arefiev
  • Dutch Pascon 2012 Pictures
  • Smart Mobile Studio By Jørn E. Angeltveit
  • Interview with Marco Cantu
  • FireMonkey in Delphi XE3: FM2 By Marco Cantú
  • HTML 5 By Bob Swart
  • Interview with Michael Rozlog
  • XE3 Style Designer By Jeremy North
  • Burgler detection using Lazarus By Michael Van Canneyt
  • Supporting new android features in old android versions with Oxygene By Brian Long
  • Delphi XE3 Helper Types By Bob Swart
  • Interview with Marc Hoffman
  • Introduction to Databases Part 9: Overview of DataSnap By Cary Jensen
  • Software taxes – storage By Alexander Alexeev
  • Interview with David I. (Intersimone)
  • The Delphi History
  • From Delphi to the cloud By Bruno Fierens
  • Interview with Bruno Fierens
  • kbmMW as a RTMP media server by Kim Madsen

 

 

 

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

И первую интересную новость сегодня озвучил John Thomas.

Марко Канту (Marco Cantu), хорошо известный автор многочисленных книг, посвященных Delphi, стал резидентом Embarcadero. Он назначен на должность Delphi Product Manager.

Думаю, что это отличная новость для всего Delphi сообщества.

11 октября в Харькове прошел семинар в рамках RAD Studio XE3 World Tour. Подробный отчет о семинаре вы можете увидеть на сайте http://delphixe.com.ua/.

Я на семинаре показывал небольшой пример, иллюстрирующий работу механизма Visual LiveBinding. Как и обещал, выкладываю видео и, собственно, сам пример.

В качестве СУБД я использовал SQLite, компоненты доступа, для чистоты эксперимента, от стороннего производителя – LiteDAC от DevArt.

Я полностью записал весь процесс создания приложения, который занял около 20 минут. Получилась небольшая иллюстрация того, что теперь в FireMonkey приложения для работы с БД можно создавать практически так же просто, как и в VCL. Я не буду здесь приводить развернутых описаний, лишь вкратце расскажу, суть происходящего на видео. Если у вас возникнут вопросы, вы можете задать их в комментариях.

Первый ролик показывает процесс подключения компонентов доступа к БД. По сути ничем не отличается от аналогичного процесса в VCL.

Ролик 1. Читать далее

Delphi XE3 и C++Builder XE3 хотфикс 1, 2 и 3 доступны для скачивания.

RAD Studio XE3 Hotfix 1

  • Это исправление устраняет проблему ShowMessage в FireMonkey приложении на некоторых локалях в Mac OS X
  • Скачать:  http://cc.embarcadero.com/item/29050

RAD Studio XE3 Hotfix 2

  • Это исправление устраняет регрессии при использовании GestureManager в FireMonkey приложениях
  • Скачать: http://cc.embarcadero.com/item/29051

RAD Studio XE3 Hotfix 3

  • Только для Professional редакции
  • Это исправление устраняет проблему при использовании SQLite драйвера в Professional редакции
  • Скачать: http://cc.embarcadero.com/item/29052

Читать далее

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