Обновлено 2014.02.21 22:34
Подборка ссылок на лучшие публикации по Delphi за 2013 год.
Аналогичные подборки за предыдущие годы:
Читать дальше..
Блог Delphi-программиста. Обзоры инструментов и экспертов для Delphi. Описание JCL, JVCL, cnWizards. Дженерики в Delphi. Дневник разработки Lazy Delphi Builder. Переводы.
В тихом саду здравомыслияЧогьям Трунгпа РИНПОЧЕ
Пусть на вас постоянно падают
кокосовые орехи пробужденности.
Обновлено 2014.02.21 22:34
Подборка ссылок на лучшие публикации по Delphi за 2013 год.
Аналогичные подборки за предыдущие годы:
Отправил свою программу на конкурс. Саму программу показывать пока не хочу. А хочу поделиться своими впечатлениями от использования Delphi XE5 и Firemonkey.
Deployment manager и папки. С этим тоже пришлось повозиться прежде чем удалось понять какие надо указывать пути в Deployment manager и как потом найти эти файлы в программе. Пришлось провести небольшое исследование. О нём напишу позже, в отдельном посте. Вот только так и не понял, как же из приложения определить путь до корня SdCard. Также не понравился UI в Deployment manager-e. Редактирование пары десятков файлов сделано не очень удобно, хотя к слову сказать просто добавить пачку файлов довольно легко.
Сразу уточню, что я хотел недокументированного. Искал легкий способ добавления/редактирования файлов в Deployment manager из консоли. Не получилось, так файлы добавленные через Deployment manager поначалу сохраняются в .dproj файле, хотя в папке проекта и присутствует отдельный файл .deployproj. И я так и не понял в какой момент файлы переносятся из .dproj в .deployproj файл. Вот кстати наткнулся на пост о похожем исследовании от Павла Алхимова “DeployFolder - Развёртывание мобильного подкаталога”.
Не то, чтобы я очень ждал выхода 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 тут бессилен, так как умеет только компилировать)
Все лучшие публикации по Delphi за 2012 год в одном месте. Радует, что качество публикаций растёт с каждым годом.
Рад видеть среди новых авторов Александра Багеля (Rouse_), чьи советы и наработки опубликованные на форумах не раз мне помогали. Также, рад видеть новых авторов из Embarcadero (и особенно Сергея Рощина).
Отдельно рекомендую обратить внимание на:
Подборки ссылок за предыдущие годы:
Подборка лучших материалов по Delphi на русском языке за 2011. В сравнении с прошлым годом, появилось намного больше качественных публикаций. Смотрите также: Самые интересные публикации 2009 года и Самое интересное в Delphi-блогах за 2010 год.
Особенно рекомендую почитать переводы статей Hallvard-а Vassbotn-а, и обратить внимание на раздел “Инструменты для Delphi”.
Регулярные публикации приводят посетителей также надёжно, как приносят проценты вклады в банках Москвы. Даже эффективнее. Идеи для новых публикаций есть, а времени на написание нет. Поэтому, пока опубликую пост из черновика. Сводная таблица горячих клавиш CnWizards. В таблице приведены комбинации клавиш по умолчанию. Оптимизированную для печати на листе А4 шпаргалку можно скачать здесь в виде PDF-файла. В блоге приведён более развёрнутый вариант.
Следует помнить, что если у вас установлено несколько наборов экспертов для Delphi, то некоторые горячие клавиши могут не работать. Например, ModelMaker Code Explorer по умолчанию резервирует для себя комбинацию Ctrl+Alt+U. И в MMX и в CnWizards все горячие клавиши можно изменить или отключить.
Все горячие клавиши поделены на 4 блока:
Обещанный обзор ModelMaker Code eXplorer.
Сегодня я расскажу об одном эксперте для Delphi, способным фантастически упростить рефакторинг. Разработан этот эксперт компанией ModelMakerTools. У ModelMakerTools есть 2 продукта, которые часто путают:
MMX интегрируется в Delphi 5 - 7, Delphi 2005 - 2010 и Delphi XE. Т.е. вы получаете удобный инструмент для рефакторинга практически в любых версиях Delphi. И этот инструмент удобнее стандартных мастеров для рефакторинга, встроенных в Delphi.
Почти все функции которые я здесь описываю, доступны в MMX начиная с версии 5.1. Текущая версия – 9.0. Для снимков экрана я использовал версию 8.
Скажу сразу, ModelMaker Code eXplorer – платный продукт. Новая лицензия стоит 99 евро. И купить его можно только через ShareIt.
Но на сайте доступна trial версия, которая работает в течение 30 дней без каких-либо ограничений. Более того каждое обновление продлевает срок trial-а. (раньше было так, как сейчас не знаю).
Ложка дёгтя: после окончания 30-дней триала, MMX может вызывать Access Violation-ы при работе с IDE. Например при нажатии Ctrl+Shift+вверх или вниз. Или в других случаях. В общем, если ваша IDE внезапно начала сыпать ошибками, проверьте, не закончился ли испытательный период у MMX. Чтобы убедится, Для этого достаточно открыть окно Code Explorer. Если trial окончен, там будет показано соответствующее сообщение. Такие AV в IDE, это побочный эффект от защиты от взломов trial-а и способный серьёзно потрепать нервы. Поэтому предупреждаю о нём сразу. В остальном, это прекрасный и удобный инструмент для Delphi программиста.
Скриншоты MMX на официальном сайте. История изменений. На сайте продукта доступны видеоролики, демонстрирующих функционал MMX. Это что касается официальной документации. А тех, кому интересны личные впечатления, прошу пожаловать под кат.
Что мне особенно нравится в MMX - так это то, что каждая функция там работает именно так как заявлено, и часто учитывает мельчайшие нюансы, такие как, например, местонахождение курсора. Так, например при вставке кода из буфера обмена, в зависимости от того, где находился курсор в момент вызова функции, код будет превращён либо в процедуру, либо в метод класса.
Это наверное самый большой пост у меня в блоге. Более 2000 слов, 13 тысяч знаков без пробелов. И картинки. Надеюсь, что для вас он окажется полезным.
Немного отвлекусь от темы перехода с Delphi 7 на юникод, для продолжения описания CnWizards.
Это двадцатая запись в серии "Эксперты для Delphi: описание CnPack Wizards”. В прошлый раз я начал описание настроек CnPack Wizards, точнее просто опубликовал скриншоты основных форм настройки с кратким описанием. Этот пост будет сделан в таком же духе. Я не буду вдаваться в детали и просто покажу как выглядят все формы настройки. Здесь будут скриншоты и ничего более. Правда в отличие от предыдущего поста, здесь будет не три картинки, а штук тридцать.
В прошлый раз меня спрашивали, какой смысл, публиковать только скриншоты с парой строк описания. Так вот для меня смысл есть и состоит он в том, чтобы подготовить скриншоты для описания, а также сделать мой блог более популярным для поисковиков. Ведь есть люди, которых интересует чтобы их находили по фразе няня для ребенка Одесса, а меня вот интересует чтобы мой блог находили по фразе "Описание экспертов для Delphi". А регулярные публикации по теме - лучшее средство в таком случае. А текста здесь мало, потому что на мой взгляд здесь всё видно по скриншотам. Тем более что почти все из них сделаны на русскоязычной версии CnWizards.
(осторожно, траффик! под катом много картинок.)
Это девятнадцатая запись в серии "Эксперты для Delphi: описание CnWizards”. В прошлый раз я описывал класс для отправки отладочных сообщений TCnDebugger. В этот раз я расскажу о настройках CnPack Wizards. Сейчас, я не буду вдаваться в детали и просто покажу как выглядят все формы настройки. Эта публикация посвящается тем, кто, ещё не установил CnWizards, из-за того “там слишком много ненужных мне функций”. Надеюсь что этот пост послужит лучшим доказательством того, насколько легко можно отключить все “ненужные функции” и как легко можно настроить “нужные” функции на свой вкус.
CnPack Wizards – комплексный эксперт состоящий из модулей (мастеров). Любой из модулей можно настроить под себя или просто отключить. Очень удобно. Я снимаю шапку перед разработчиками CnWizards. Архитектура этого эксперта достойна всяческого восхищения.
А пока вы читаете этот пост, я почитаю SEO статьи по теме "раскрутка интернет магазина", особенно по части раскрутки по long-tail (супернизкочастотных) запросов.
Диалог настроек CnWizards открывается через Главное меню->CnPack->Options.
Продолжаю обзор CnWizards – бесплатного эксперта для Delphi с открытым исходным кодом от китайских программистов. В прошлый раз я рассказывал о CnDebugViewer-е – просмотрщике отладочных сообщений. Сегодня я расскажу как эти сообщения отправлять.
C помощью CnDebug из программы можно отправлять строковую информацию, integer, float, color и RTTI-информацию об объектах и компонентах. CnDebug также умеет записывать в журнал информацию о возникающих в программе исключениях, вместе с содержимым стека вызовов.
Для работы CnDebug нам понадобятся файлы, расположенные в папке C:\Program Files\CnPack\CnWizards\Source\
Директивы компилятора, влияющие на работу CnDebug:
Это семнадцатая публикация в серии: Эксперты для Delphi: Описание CnWizards. В прошлый раз я писал о Тестере зависимостей CnWizards (Relation Analyzer) – утилите для анализа зависимостей между скомпилированными и исходными файлами. Сегодня я расскажу о CnDebugViewer.exe - просмотрщике отладочной информации отправленной из модуля CnDebug.pas.
CnDebugViewer – программа для отображения отладочной информации посланной программой с помощью модуля CnDebug.pas а также с помощью стандартной API функции OutputDebugString. Полученная информация отображается в виде дерева. Её можно фильтровать, сохранять и загружать для дальнейшего изучения. Только распечатывать не умеет. Здесь, конечно не нужна широкоформатная интерьерная печать, но возможность вывести на печать хотя бы в каком-то виде была бы полезной.
Для отправки сообщений с отладочной информацией в CnWizards входит модуль CnDebug.pas содержащий определение класса TcnDebugViewer умеющего отправлять разнообразную информацию просмотрщику. Для получения информации из TcnDebugger-а используется отображаемый в память файл (Memory mapped file).
Это шестнадцатая запись в серии: Delphi эксперты: CnWizards. В прошлый раз я завершил краткий обзор утилит из CnWizards. В этот раз я подробно опишу Relation Analyzer (Тестер зависимостей).
Relation Analyzer может помочь лучше разобраться в зависимостях большого числа bpl-ок, а также изучить собранные в Delphi программы – посмотреть список использованных юнитов, например.
В этой программе есть два режима анализа:
Язык не повернётся назвать GUI этой программы простым. Поэтому, я начну описание именно с интерфейса. Хотя GUI и не такой сложный, как может быть у crm системы, предназначенной для учёта данных по огромному числу клиентов . Но всё же, разбираться с ним дольше, чем, найти земельный участок в Рязани.
Итак. При запуске программы видны 5 закладок. Назначение каждой:
Это пятнадцатая запись в серии: Эксперты для комфортной работы в системе Delphi: CnWizards. Официальные сайты проекта: и .
Вчера, я начал описание утилит входящих в CnWizards:
Сегодня я продолжу рассказ об утилитах и расскажу о следующих:
Название файла: CnDebugViewer.exe
Просмотрщик для отображения отладочной информации, посланной программой с помощью OutputDebugString и методов класса TCnDebugger, содержащегося в файле CnDebug.pas. C помощью CnDebug.pas из программы можно отправлять строковую информацию, integer, float, color и RTTI-информацию об объектах и компонентах. CnDebug также умеет устанавливать глобальный обработчик исключений и записывать в журнал содержимое стек и другие данные. Я напишу об этом подробнее в следующих постах.
А CnPack Debug Viewer позволяет просматривать эту информацию в удобном виде (с использованием иерархий, группировок, фильтров). Аналогичный инструмент, но попроще, входит и в состав gExperts.
Это четырнадцатая запись в серии: Эксперты для комфортной работы в системе Delphi: CnWizards. В прошлый раз я рассказывал о шаблонах кода и комментариев в CnPack Wizards. В этот раз я расскажу об утилитах, входящих в состав CnPack мастеров IDE.
Официальные сайты проекта: и .
Помимо расширений для Delphi IDE, CnWizards включают в себя несколько утилит, которые можно запустить из меню программ (Start Menu->Programs). Все эти файлы находятся в папке CnWizards (c:\Program Files\CnPack\CnWizards\)
Самое интересное в Delphi блогах за 2010 год.
Смотрите также: Самые интересные публикации 2009 года и Самое интересное в Delphi блогах за 2011 год.
В этом году количество материалов в блогах по Delphi просто зашкаливает. Честно скажу, я читал только малую часть. Посты для итогов 2010 года я отбирал менее критично чем в прошлом году. В этот пост вошли более 150 статей.
Это одиннадцатая публикация в серии: Эксперты для Delphi: CnWizards. Предыдущая публикация доступна по ссылке: описание CnPack Wizards Часть 12: панель инструментов в редакторе кода. Скачать CnWizards можно на официальном сайте проекта:
CnPack Wizards включают в себя инструмент для работы с шаблонами кода. Шаблон представляет собой текст, который может содержать макросы (см. картинку ниже). Шаблоны можно вставлять по нажатию горячей клавиши (для этого её придётся назначить), либо через меню шаблонов (см. описание тулбара, выше).
Подобный функционал есть и в gExperts, а в последних версиях Delphi даже в самой IDE. Но так как я всё ещё больше всего времени провожу в Delphi 6, то наличие таких вещей в эксперте для меня важно.
Это двенадцатый пост в серии: Эксперты для комфортной работы в Delphi: CnWizards. Предыдущая публикация доступна по ссылке: описание CnPack Wizards 11-я часть: редакторы свойств в CnWizards. Скачать бесплатно CnWizards можно на официальном сайте проекта:
После установки CnPack IDE Wizards добавляют в редактор кода новый тулбар:
Половина кнопок на тулбаре содержит ссылки на стандартные команды Delphi, такие как Open, Save, Build, Run, Trace и другие (см. ниже). Я полагаю что это сделано для того, чтобы было удобнее работать с редактором кода в полноэкранном режиме (см. ниже).
Переключить редактор кода в полноэкранный режим. Очень удобная фича. Раскрывает редактор кода на весь экран. В отличие от обычной максимизации окна редактора , этот вариант не оставляет сверху место для главного окна Delphi.
Включает/выключает автоматическое появление помощника ввода (Code Input Helper). Горячая клавиша по умолчанию - Shift+F2.
Это одиннадцатая публикация в серии: Эксперты для Delphi: CnWizards. Предыдущая публикация доступна по ссылке: описание CnPack Wizards Часть 10: проектные расширения Delphi IDE. Скачать CnWizards можно на официальном сайте проекта:
CnPack IDE Wizards включают в себя несколько расширенных редакторов свойств. Любой из редакторов свойств можно отключить в настройках.
Добавлен checkbox - теперь свойство можно менять и одинарным кликом и двойным.
Image by jackhynes via Flickr
Это продолжение публикации о учёбе в университете. Первая часть (осенний семестр последнего курса) доступна по ссылке: Итоги осеннего семестра в RTU, по программе Информационные технологии.
Я конечно зря так долго оттягивал написание этого поста, ведь с момента окончания курса прошёл ровно год, и я успел подзабыть большую часть предметов.
На втором курсе у меня тоже был предмет с похожим названием. Это был выборный предмет и там мы проходили экспертные системы. Курс "Основ ИИ" был куда серъёзнее.
Краткое содержание курса: история ИИ, пространства состояний, поиск в пространствах, эвристика, схемы отображения знаний и сценарии, логика (предикаты и все-все-все). К сожалению, логике было отведено не так много времени и у меня осталось ощущение скомканности от этой темы.
Сейчас, из этого курса я помню только использование пространства состояний для реализации ИИ в играх. Помню, что практические работы включали в себя решение примеров и не требовали программирования. Не думаю, что эти знания мне когда-нибудь пригодятся, но для расширения кругозора, этот предмет мне показался полезным.
Это десятая публикация в серии: Эксперты для комфортной работы в системе Borland Delphi: CnPack Wizards. Предыдущая публикация доступна по ссылке: описание CnPack Wizards Часть 9: стиратель комментариев, расширение информации о версии и мастер подписки. Скачать CnWizards можно на официальном сайте проекта:
Здесь я опишу только часть функционала. Остальное вполне понятно и без пояснений.
Позволяет запустить проект без отладчика. Удобная вещь, если необходимо запустить несколько экземпляров программы, или просто посмотреть как работает программа не отвлекаясь на брейкпойнты и исключения.
Горячая клавиша по умолчанию: Shift + F9.
Список модулей (юнитов) в программе. По умолчанию, этот диалог заменяет и стандартный список юнитов, вызываемый по Shift+F12. Основные преимущества перед стандартным: