Motto

В тихом саду здравомыслия
Пусть на вас постоянно падают
кокосовые орехи пробужденности.
Чогьям Трунгпа РИНПОЧЕ


Версия для мобильного


воскресенье, 3 января 2010 г.

Самые интересные публикации 2009 года

В этом году в русскоязычном Delphi-сообществе было опубликовано огромное количество материалов. Можно было запросто пропустить что-то интересное. Я постарался собрать в одной публикации ссылки на наиболее интересные публикации 2009 года. Все публикации имеют прямое отношение к Delphi. Получилось довольно много. Большое спасибо любезным авторам!

 

Михаил Мохов: Аспектно-ориентированное программирование и Delphi – заметка об АОП и Delphi, + ссылки на фреймворки.

Дмитрий Ларионов: Превращаем главное скрытое окно программы в действительно главное окно программы – как избавится от недостатка невидимого окна TApplication в программах написанных на Delphi версии <= 2006.

Александр Шарахов: Почему мне не нравится TDateTime – достоинства и недостатки типа данных TDateTime в Delphi.

Алексей Легкунец: Что нужно знать программисту и пользователю, работающему с программами, строящими графики функций

Упаковка сложных типов данных в Delphi

Описание работы с Vista UAC в Delphi от Александра Божко

  1. Часть 1. Введение.
  2. Часть 2. Варианты использования.
  3. Часть 3. Повышение прав по запросу с использованием COM Elevation Moniker.

Технологии интеллектуального редактирования в D2009 (рефакторинг) – Часть 1. Часть 2. Часть 3. – описание работы с встроенными в Delphi инструментами для рефакторинга.

Подробное описание Ribbon Controls, появившихся в Delphi 2009 от Влада (webdelphi.ru). Ribbon Control шаг за шагом:

  1. Шаг 1 – визуальная разработка интерфейса.
  2. Шаг 2 – дополнительные элементы интерфейса
  3. Шаг 3 – работа со ScreenTips.
  4. Шаг 4 – создаем уникальный стиль или как работать в RibbonSkins.

Алексей Тимохин: О переводе крупного проекта на Delphi 2009 - перевод статьи: “Upgrading a major project to Delphi 2009”,  Lars B. Dybdahl.

Алексей Казанцев: Расширенная поддержка интерфейсов для Delphi - пример кода, позволяющего добавить поддержку кастомных интерфейсов для любого класса в Delphi (включая базовые VCL-классы).

Алексей Тимохин: Сравнительная таблица Delphi-компонентов для работы с СУБД Oracle.

Дженерики

Алексей Тимохин: Обобщённое программирование(generics) в Delphi 2009 для Win32. Перевод статьи Sébastien DoeraeneGenerics with Delphi 2009 Win32 (With, as a bonus, anonymous routines and routine references)

Алексей Тимохин: Сравнивая дженерики в C#, C++ и Delphi(Win32) - Перевод статьи: Comparing C#, C++, and Delphi (Win32) Generics. Автор: Craig Stuntz

Delphi 2010

Краткое перечисление новинок в Delphi 2010 от Алексея Тимохина.

Skiminog: Weaver — первые впечатления

Обзор механизма естественного ввода в RAD Studio 2010 от Skiminok.

Описание форматировщика кода в Delphi 2010

  1. Delphi 2010 Formatter. Иллюстрированный справочник. Раздел Indentation
  2. Delphi 2010 Formatter. Иллюстрированный справочник. Раздел Spaces

Обзор новинок в Delphi 2010 от Александра Божко

  1. Delphi 2010. Что нового? #1
  2. Delphi 2010. Что нового? #2
  3. Delphi 2010. Что нового? #3
  4. Delphi 2010. Что нового? #4": Изменения в компиляторе
  5. Delphi 2010. Что нового? #5: Изменения в отладчике.
  6. Delphi 2010. Что нового? #6: Изменения в VCL.

RTTI в Delphi 2010:

  1. Delphi 2010 RTTI – Основы.
  2. Delphi 2010. RTTI и атрибуты
  3. Использование атрибутов и наследников TCustomAttribute
  4. Углубленное исследование TRTTIType
  5. Углубленное исследование наследников TRttiMember (часть I), свойства и поля
  6. Углубленное исследование наследников TRttiMember (часть II) Методы
  7. Почему я вызываю TRttiContext.Create() и TRttiContext.Free()
  8. Введение в TValue

Описание библиотек JCL и JVCL:

Общее описание библиотеки Jedi Code Library. JCL 3.35.

Серия постов, описывающих некоторые компоненты из библиотеки Jedi Visual Control Library.

Серия публикаций от Александра Алексеева.

Обработка ошибок в Delphi-программах:
  1. Обработка ошибок – фундаментальное исследование по обработке ошибок в Delphi. Сравниваются разные подходы (коды ошибок и исключения), рассматривается механизм возникновения и обработки исключений, средства диагностики исключений (Jcl, FastMM, EurekaLog, Windows Error Reporting), даются советы о том, как правильно обрабатывать ошибки. Подробно описывается работа с отладчиком и многое другое. Из-за огромного размера статьи доступен вариант в PDF.
  2. Access Violation в деталях - подробный разбор самой частой ошибки в Delphi-программах. Что это такое, откуда берётся, возможные причины, как диагностировать, как исправлять.
  3. Ищем утечки памяти – статья о том, как искать утечки памяти в Delphi программах с помощью EurekaLog, FastMM, MemProof/AQTime.
  4. Настройки проектов в Delphi с точки зрения поиска ошибок – как настроить проект, чтобы получить максимум информации в отчёте об ошибке.
  5. Как читать Log-файлы отчётов об ошибках EurekaLog, FastMM, JCL – как проанализировать стек вызовов и найти место возникновения ошибки. Типичные ошибки новичков.
  6. EurekaLog с точки зрения ShareWare-разработчика – обзор EurekaLog с позиции разработчика ShareWare-программ (вопросы защиты кода).
  7. Anti-freeze в EurekaLog – отслеживание зависания программы с помощью EurekaLog.

Менеджеры памяти в программах – описание устройства менеджера памяти в Delphi. Зачем нужен, как используется, межмодульное взаимодействие.

Создание приложений для Windows Vista в Delphi (до 2007) 

  1. часть 1 - перевод Creating Windows Vista Ready Applications with Delphi. Автор: Nathanial Woolls.
  2. часть 2 - перевод Creating Windows Vista Ready Applications with Delphi. Update - January 2007. Автор: Nathanial Woolls.

Работа с указателями в Delphi для Win32. - перевод Addressing pointers. Автор: Rudy Velthuis

Параметры типа открытый массив и "array of const" - перевод Open array parameters and array of const. Автор: Rudy Velthuis.

PChars: сами строки не включены - перевод PChars: no strings attached. Автор: Rudy Velthuis

BOOL, Boolean и Integer - перевод BOOL, Boolean and Integer. Автор: Christian Wimmer.

Что люди любят делать не так в IUnknown.QueryInterface - перевод The ways people mess up IUnknown::QueryInterface. Автор: Реймон Чен.

Особенности работы с DllMain с примерами на Delphi:

 

Перевод серии статей Реймонда Чена – “Как управлять IContextMenu” с примерами на Delphi.
  1. Как управлять IContextMenu, часть 1 - вступительное слово
  2. Как управлять IContextMenu, часть 2 – показ контекстного меню
  3. Как управлять IContextMenu, часть 3 - место вызова
  4. Как управлять IContextMenu, часть 4 - контекст клавиш
  5. Как управлять IContextMenu, часть 5 - обработка сообщений от меню
  6. Как управлять IContextMenu, часть 6 - отображение подсказок меню
  7. Как управлять IContextMenu, часть 7 - вызов пункта меню по-умолчанию
  8. Как управлять IContextMenu, часть 8 - оптимизируем вызов команды по-умолчанию
  9. Как управлять IContextMenu, часть 9 - добавление своих команд
  10. Как управлять IContextMenu, часть 10 - компоновка расширителей меню - основы
  11. Как управлять IContextMenu, часть 11 - компоновка расширителей меню - компоновка
 
Перевод серии статей Реймонда Чена: Dragging a shell object, part 1: Getting the IDataObject с примерами на Delphi.
  1. Перетаскивание объекта оболочки, часть 1: получение IDataObject
  2. Перетаскивание объекта оболочки, часть 2: добавляем перемещение
  3. Перетаскивание объекта оболочки, часть 3: определение "оптимизированного" перемещения
  4. Перетаскивание объекта оболочки, часть 4: добавляем красивую иконку
  5. Перетаскивание объекта оболочки, часть 5: заставляем кого-нибудь делать за нас работу

 

Серия заметок от Александра Алексеева о создании системы плагинов на Delphi:
  1. Часть 1. Варианты реализации (DLL, COM, пакеты, использование интерфейсов)
  2. Часть 2. Создание точки входа.
  3. Часть 3. Реализация плагина в пакете, в виде DLL.
  4. Часть 4. Объяснение работы пакета как DLL.
  5. Часть 5. Загрузка пакетов в виде DLL.
  6. Часть 6. Интерфейс IInit.
  7. Часть 7. Обработка ошибок в плагинах.
  8. Часть 8. Объявление дополнительных интерфейсов и передача строк.
  9. Часть 9. Совместимость с другими языками. Обмен данными переменного размера.
  10. Часть 10. Пример реализации.
  11. Часть 11. Исходники.
Кросспост на Хабр.

5 человек заметили этот пост:

  1. АнонимныйJan 3, 2010 09:03 AM
    Неожиданно и приятно было увидедь упоминание своей статьи "превращаем главное невидимое окно..." у вас. Правда радость омрачается тем, что до ума этот код так и небыл доведён. То один то другой недочёт где-нибудь да вылезет. И всё это спотыкание из-за того, что как-то не расчитана виндус на работу многооконной программы.
    Например, надо что бы помимо главного окна на экране были ещё два-три окна. Задав им владельца при создании, они будут всегда его перекрывать, т.е. выше по z-order, не задав владельца, все они будут иметь свои кнопки в taskbar'e.
    Если сделать невидимое окно и делать его владельцем для всех "главных" окон программы(как и сделано в delphi), то в висте получается такая ерунда - в preview видна пустота.
    Если сделать невидимое окно и делать его владельцем для всех "главных" окон программы, но кнопку в taskbar'е вывести от одного из окон, то почти невозможно становится управлять сворачиванием/разворачиванием программы. Окно(владелец кнопки в taskbar'е) начинает всё время вылезать на передний план.

    Для однооконных программ сейчашний вариант подойдёт, для многоокооных - нет(главное окно вылезает на передний план).

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

    Текст в самой статье уже давно не соответствует версии в прилагаемом архиве. Текст писался для первого-пробного-дискуссионного варианта. К сожалению "королевство" не очень приспособлено к ведению "личных веток". Мало того что я закалебал модераторов обновлениями архива, так я бы еще и достал бы их обновлением статьи...

    Извините, если сумбурно написал - температура 38...
    ОтветитьУдалить
  2. Отличная подборка материалов!
    Пока мы тут отдыхали, Вы, Алексей потрудились на славу!
    ОтветитьУдалить
  3. АнонимныйJan 5, 2010 11:01 PM
    Классная подборка! Спасибо.
    ОтветитьУдалить
  4. Дмитрий, мне самому очень приятно что Вы заметили эту ссылку. :)
    А по теме вопроса - я сам привык мирится с подобными недостатками Delphi, и стараюсь не трогать те механизмы, которые выходят за рамки "форм и компонентов", но с удовольствием читаю статьи вроде вашей, так как они позволяют лучше понять внутреннюю оконную кухню Винды.
    ОтветитьУдалить

Читатели