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

Delphi

Известное компьютерное издание PCWeek вчера опубликовало интересную заметку, посвященную Delphi. В статье в частности говорится, что “…с 2008 г. продажи Delphi ежегодно увеличиваются на 15%, в настоящее время сообщество пользователей этого продукта по всему миру составляет более 2 млн. и является вторым по величине сообществом разработчиков приложений для ОС Windows после Microsoft“.

Лично я думаю, что на фоне вышесказанного, регулярные разглагольствования о “смерти Delphi” уже не кажутся безобидным заблуждением, а выглядят как откровенный черный PR.

Естественно, любой продукт может переживать плохие и хорошие времена, но по мнению PCWeek, для Delphi наступает “эпоха Возрождения”. И готовящаяся к выходу новая версия продукта должна еще более стимулировать этот процесс.

“Раскрашиваем” cxGrid.

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

Итак, дано:

Поле ‘sales’ таблицы, к которой привязан cxGrid1DBTableView1 принимает значения 0 или 1. Необходимо строки, в которых значение sales равно 0 сделать серыми.

В данном случае определяем обработчик события OnCustomDrawCell. Код будет выглядеть примерно так: Читать далее

Данный пост я оформлю тезисно. Да и вопросов в нем больше чем ответов.

Не буду оригинален – текучка.

После перевода приложения на Delphi 2010 вдруг перестали работать отчеты. при том все сразу. Причина банальна – Rave Reports. Раздел QC, посвященный Rave уже можно читать как увлекательный роман. Там даже есть крики отчаяния, зачем, мол, использовать в такой хорошей IDE как Delphi неработающий Rave, если есть работающий FastReport. Убедил руководство перевести 14 отчетов на FR с попутной его покупкой. Благо дело, стоит не дорого. В последний момент струхнул. Полез ковырять Rave. Выяснилось, что встроенный Pascal Script не корректно отрабатывает if. Если чего-то целочисленное сравнивать с нулем, и результат оказывается false – отчет валится.

Вынес в код приложения все, что считалось в отчете. 2 недели работы.

Вторая задача, ставшая на повестке дня – производительность.

Притормаживает программа с DevExpress гридами. У меня есть подозрения на этот счет. Но пока не готов это обсуждать. По факту решения проблемы ждите продолжения рубрик “Заметки на полях” и “Tips & Trics”.

По данной теме, пожалуй все… Был краток, как и обещал.

И немного новостей:

Очередной номер BPM. Опять 60 страниц. Во многом благодаря стараниям наших авторов. Так что, подписывайтесь на русскую версию журнала и читайте статьи в оригинале :).

Другие статьи серии:

Редизайн интерфейса приложения. #0
Редизайн интерфейса приложения. #1
Редизайн интерфейса приложения. #2
Редизайн интерфейса приложения. #3
Редизайн интерфейса приложения. #4
Редизайн интерфейса приложения. #6
Редизайн интерфейса приложения. #7
Редизайн интерфейса приложения. #8

Содержание:

В ожидании x64: WOW64
Старые приложения в новом мире… Александр Алексеев
Delphi и Unicode
Объясняем основы Петер Присман
Что будем праздновать?
Всегда забываю памятные даты Петер Бейлсма
Проект Xfont
Работаем со шрифтами Давид Дирксе
Учимся использовать FastReport 4 для VCL, часть 1
Не только для чайников Сергей Любезный
Введение в 64 бита на Windows
Всё, что вы только хотели знать Александр Алексеев
Создание web-приложений для iPhone/iPod/iPad
с Delphi и TMS controls

Просто изумительный пакет Бруно Ференс
Введение в базы данных, часть 3: TDataSet
Кто может обойтись без БД? Кэри Дженсен
64-битные Delphi программы уже в пути
Эта статья публикуется с любезного разрешения Embarcadero
Узнаем кое-что… Примож Габриельчич
Программирование на Паскале в ОС Android
Вы Чужой? Или Андроид? Фелипе Монтейру де Кавалью
Альтернативы FieldByName
Хотите научиться чему-нибудь новому? Хэнк Схрей
Компоненты FlexCel в действии Группа компонентов ‘musthave’ Зигфрид Цур

К сожалению, в старших версиях Delphi есть достаточное количество багов. Большинство из них безобидны, и особо не досаждают, но не так давно один из них меня, что называется, достал. После того, как проект в режиме отладки доходит до первого брикпойнта, при нажатии кнопки F8 следует предложение о перекомпиляции. Я начал искать решение в Интернете и наткнулся на неофициальный IDE Fix Pack от Andreas Hausladen.

Поставил не задумываясь (благо дело бесплатно) и не разочаровался. Среда начала вести себя значительно стабильнее.

Пакет  устраняет ряд багов для 4-х версий Delphi. Полный перечень на странице автора.

Рекомендую!

В блоге автора представлены еще несколько утилит. К сожалению, пока не дошли руки их посмотреть, но сделаю это обязательно. О результатах расскажу здесь.

Как-то так получилось, что я не написал сразу о выходе первого бесплатного номера Blase Pascal Magazine в русской редакции. Поэтому напоминаю. что он доступен для скачивания на русской странице издания.

Тем временем, наши голландские коллеги успели выпустить сразу три номера, один из которых бесплатный и посвящен Delphi Starter Edition.  Не пропустите!

Перевод всех трех номеров также практически завершен.

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

Подробная инструкция как оформить подписку приведена на сайте.

Можно подписаться на журнал как на в формате .pdf, так и на бумажную версию. Кстати, я стал обладателем бумажной версии первого выпуска. Что можно сказать? Хорошая полиграфия. Удобно, красиво, приятно…

Одним словом – рекомендую.

Чуть позже выложу фото (что-то не ладится у меня с фототехникой…)

Читать далее

Если вы не любите читать сообщения, которые время от времени выдает вам IDE, то, возможно, данный пост сэкономит вам некоторое количество времени. Речь пойдет о скинах DevExpress. В меню Delphi выберите пункт Project | Modify Skin Options. на экране появится следующий диалог.

skinoptions

По умолчанию, включена поддержка всех скинов. Теперь, предположим, что вы, по каким-то причинам, не хотите использовать все скины. Все же бинарник разрастается, при их использовании. Здесь вы их можете отключить. Но, прежде чем это сделать внимательно прочтите Note.

В секции Uses модуля каждой формы объявления модулей с уже ненужными скинами останутся, и их нужно вычистить руками. Выглядят описания модулей так:

dxSkinOffice2010Blue, dxSkinOffice2010Green….

Что же произойдет, если этого не сделать? Во-первых, размер бинарника не уменьшится. Далее… Вполне вероятно, что в IDE ваш проект будет вести себя вполне пристойно. Чудеса начнутся как только вы попытаетесь запустить приложение вне среды разработки. Так у меня проект, упакованный с помощью ASPack, вообще не стартовал. Я долго не мог разобраться в чем причина, и только запустив редактор ресурсов и обнаружив в нем все скины из набора DevExpress Skin Library, догадался в чем дело.

Так что, будьте внимательны с объявлениями скинов.

Другие статьи серии:

DevExpress. TIPS & TRICKS #0
DevExpress. TIPS & TRICKS #1
DevExpress. TIPS & TRICKS #3
DevExpress. TIPS & TRICKS #4
DevExpress. TIPS & TRICKS #5
DevExpress. TIPS & TRICKS #5.5
DevExpress. TIPS & TRICKS #6
DevExpress. TIPS & TRICKS #7

В предыдущих постах я начал рассказывать о некоторых проблемах перевода приложения на Delphi с поддержкой юникод (2009/2010/XE). Одним из проявившихся артефактов стало некорректный формат ввода даты в DevExpress компонентах, при языка.

Скажем, когда мы устанавливаем чешский, то при попытке ввести дату по средствам компонента TcxDateEdit получаем следующее:

incorrect_date

Соответственно, при попытке осуществить ввод данных в таком формате, получаем ошибку (Could not convert variant of type (Unicode string) to type (Date)).

При этом в Delphi 2007 все работало без проблем. Тем не менее, как следует из материалов на официальном сайте DevExpress, пользователи продукта сталкивались с подобными проблемами и при работе с младшими версиями Delphi. Например, при попытке изменить формат даты в процессе выполнения приложение. Решение довольно простое.

Подключаем модуль cxFormats и выполняем следующий код:

cxFormatController.BeginUpdate;
cxFormatController.UseDelphiDateTimeFormats := True;
cxFormatController.EndUpdate;
cxFormatController.GetFormats;
cxFormatController.NotifyListeners;

Все становится на свои места.

Другие статьи серии:

DevExpress. TIPS & TRICKS #0
DevExpress. TIPS & TRICKS #2
DevExpress. TIPS & TRICKS #3
DevExpress. TIPS & TRICKS #4
DevExpress. TIPS & TRICKS #5
DevExpress. TIPS & TRICKS #5.5
DevExpress. TIPS & TRICKS #6
DevExpress. TIPS & TRICKS #7

bg16age Сегодня юбилей!

16 лет Delphi!

Первая версия Delphi была выпущена 14 февраля 1995-го и Delphi по-прежнему считается одним из лучших инструментов нативной разработки для Windows.

И, так уж вышло, данный пост – 100-й в моем блоге.

Уходящий год

2010-й год на исходе, и самое время подводить итоги.

Если говорить о наиболее значимых событиях в мире Delphi в уходящем году, то это, конечно выпуск очередной версии продукта (Delphi XE). Собственно, запомнился не столько сам продукт, сколько события, с ним связанные. А именно перенос анонсируемых нововведений к следующей версии. Имеется ввиду, прежде всего, кроссплатформенность. С одной стороны, это, конечно же расстроило многих пользователей. С другой стороны, появились основания ожидать в следующем году качественно нового продукта. Каким он действительно будет, пожалуй главная интрига наступающего, 2011-го года.

Что касается русскоязычного Delphi сообщества, то тут главным событием, безусловно можно считать появление русского Blase Pascal Magazine. И хотя пилотный номер до конца года выйти не успел, в том, что он увидит свет сомнений нет. При том, уже практически ясно каким будет журнал по формату и содержанию. Но об этом – в Новом году. А пока хочется поблагодарить всех, кто реализовывал этот проект, и, конечно, в первую очередь Александра Алексеева.

Теперь немного о том, что я успел сделать в 2010-м. Для меня уходящий год выдался достаточно плодотворным. Конечно прежде всего, основная работа… Чем я примерно занимался вы могли прочесть в моих постах. Собственно, в этом блоге я пишу о том, что мне интересно. Некоторые серии постов ожидают своего продолжения.

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

DelphiFeeds.ru

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

Какой я вижу перспективу? Хотелось бы написать свой движок, в котором избавиться от недостатков существующего решения. Но, возможно, в следующем году я просто привлеку профессионалов, которые подправят скрипты, сделают и встроят новый дизайн. Это одна из моих задач на будущий год.

Другие проекты

А есть у меня блог, посвященный Visual Studio :) Мне самому смешно, но народ туда ходит. Ну, и для общего развития полезно перевести пару статей про новые технологии от Microsoft. К тому же я нашел, а вернее сделал, хороший источник контента (как видно из последних постов). Осталось только поставить логотип “Сделано на Delphi” :) Действительно, я собираю ссылки и делаю верстку постов с помощью написанной на Delphi программы.

Но поскольку, судя по статистике, посетители начинают идти на сайт как на работу,точнее, как на DelphiPlus, то почему нет?

А если серьезно, то относительно http://visualstudiofeeds.com/ у меня есть идеи, и если они оправдают себя, то будут воплощены и на DelphiFeeds.Ru.

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

С Наступающим!

Пусть в Новом Году сбудутся все ваши мечты, реализуются профессиональные устремления и оправдают себя все ваши надежды!

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



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