<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1724180200433302177</id><updated>2026-02-05T02:42:08.857+02:00</updated><category term="Delphi"/><category term="бла бла бла"/><category term="Blogroll"/><category term="обзор"/><category term="инструменты"/><category term="текучка"/><category term="know how"/><category term="Lazy Delphi Builder"/><category term="работа"/><category term="эксперты"/><category term="грабли"/><category term="cnWizards"/><category term="организация проекта"/><category term="перевод"/><category term="JVCL"/><category term="Jedi"/><category term="подведение итогов"/><category term="генерики"/><category term="Android"/><category term="rxlib"/><category term="Firemonkey"/><category term="JCL"/><category term="spring"/><category term="dcc32"/><category term="Oracle"/><category term="wix"/><category term="учёба"/><title type='text'>TDelphiBlog</title><subtitle type='html'>Блог Delphi-программиста. &#xa;Обзоры инструментов и экспертов для Delphi. Описание JCL, JVCL, cnWizards. Дженерики в Delphi. Дневник разработки Lazy Delphi Builder. Переводы.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>191</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-5623629232680160493</id><published>2016-04-06T13:22:00.000+03:00</published><updated>2016-04-06T13:22:27.082+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="Lazy Delphi Builder"/><category scheme="http://www.blogger.com/atom/ns#" term="инструменты"/><title type='text'>Выложен Lazy Delphi Builder 1.14.14.362 и 364 (альфа)</title><content type='html'>Выложена версия Lazy Delphi Builder 1.14.14.362.&lt;br /&gt;
&lt;br /&gt;
Исправлен Exception при добавлении пути в Lazy Paths.&lt;br /&gt;
В редакторе IDE search paths исправлены ошибки с подсветкой несуществующих папок.&lt;br /&gt;
Добавлена новая команда Replace selected with env var (auto) - которая заменяет часть пути на Environment variable (переменные ищутся в Lazy Environment variables и IDE environment variables)&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://bitbucket.org/tdelphi/lazy-delphi-builder-downloads/downloads&quot;&gt;Download 
here&lt;/a&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
Lazy Delphi Builder 1.14.14.364 alpha.&lt;br /&gt;
обновлён JCL:&lt;br /&gt;
* исправлена ошибка с некорректным ключом dcc32 -N&quot;Snamespace&quot;&lt;br /&gt;
* улучшена поддержка версий Delphi XE2+&lt;br /&gt;
* другие исправления&lt;br /&gt;
Эту версию я ещё не тестировал. Если что-то найдёте - дайте знать.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/5623629232680160493/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2016/04/lazy-delphi-builder-362.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/5623629232680160493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/5623629232680160493'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2016/04/lazy-delphi-builder-362.html' title='Выложен Lazy Delphi Builder 1.14.14.362 и 364 (альфа)'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-5639231068796498324</id><published>2016-04-01T01:38:00.001+03:00</published><updated>2016-04-01T01:38:13.885+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="Lazy Delphi Builder"/><title type='text'>Выложен Lazy Delphi Builder 1.14.14.360 (исправления ошибок)</title><content type='html'>01.04.2016. Lazy Delphi Builder 1.14.14.360:&lt;br /&gt;Исправления ошибок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Исправлены ошибки с относительными путями. Как для путей в LazyDBP файле так и для переменной $(BUILTIN_PROFILE_DIR)&lt;/li&gt;
&lt;li&gt;Консольная версия не возвращала ERRORLEVEL если при удалении или создании папки случалась проблема&lt;/li&gt;
&lt;li&gt;Очень тормозило построение дерева после удаления узла&lt;/li&gt;
&lt;li&gt;MRU файлы. Последний загруженный отправляется наверх. Наконец-то.&lt;/li&gt;
&lt;li&gt;Новый параметр командной строки /MaxProblemCountToStop&lt;/li&gt;
&lt;li&gt;Значение BUILTIN_PROFILE_DIR переменной выводится после загрузки профиля в /debug режиме в консольной версии&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&amp;nbsp;&lt;a href=&quot;https://bitbucket.org/tdelphi/lazy-delphi-builder-downloads/downloads&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Скачивать&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/5639231068796498324/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2016/04/lazy-delphi-builder-360.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/5639231068796498324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/5639231068796498324'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2016/04/lazy-delphi-builder-360.html' title='Выложен Lazy Delphi Builder 1.14.14.360 (исправления ошибок)'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-4448335040699291051</id><published>2016-03-27T02:54:00.000+02:00</published><updated>2016-03-27T02:54:37.539+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogroll"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="Lazy Delphi Builder"/><title type='text'>Lazy Delphi Builder 1.14.14.356 доступен</title><content type='html'>В этом блоге, последний раз я выкладывал анонс версии 1.10.9.269 от 
2014-03-15. Новые версии продолжали выходить, я о них писал &lt;a href=&quot;http://www.lazyproject.info/&quot;&gt;на сайте проекта&lt;/a&gt; и на &lt;a href=&quot;https://plus.google.com/+LazyprojectInfo/posts&quot;&gt;страничке Lazy Delphi 
Builder в Google+&lt;/a&gt;.&lt;br /&gt;
Пользователям версии 1.10.9.269 от 2014-03-15 настоятельно рекомендую 
обновиться – была исправлена критическая ошибка приводившая к раздуванию файла 
LazyDBP и торможению работы.&lt;br /&gt;
Основные нововведения опишу здесь. За деталями – добро пожаловать в 
history_en.txt.&lt;br /&gt;
Большие изменения&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Добавлена поддержка &quot;portable&quot; инсталляций (нужен только dccXX.exe и папка 
Lib) 
&lt;/li&gt;
&lt;li&gt;Поддержка Delphi XE8-Seattle 
&lt;/li&gt;
&lt;li&gt;Добавлен тулбар и горячие клавиши для навигации по build log 
&lt;/li&gt;
&lt;li&gt;Интерфейс больше не блокируется на время компиляции 
(Application.ProcessMessages наше всё) 
&lt;/li&gt;
&lt;li&gt;Режим /noop – когда никаких реальных действий с файлами не предпринимается 
&lt;/li&gt;
&lt;li&gt;Preset-ы для установленных в IDE packages 
&lt;/li&gt;
&lt;li&gt;Возможность добавить выделенные папки в IDE Library Search Paths или IDE 
Browsing Paths 
&lt;/li&gt;
&lt;li&gt;Поддержка относительных путей. Как относительно текущей папки так и 
относительно папки с LazyDBP профилем. (добавлена встроенная переменная 
$(BUILTIN_PROFILE_DIR)) 
&lt;/li&gt;
&lt;li&gt;Диалог с настройками. Теперь можно отключить удаление файлов в Корзину 
по-человечески, с помощью галочки 
&lt;/li&gt;
&lt;li&gt;Новые параметры командной строки: /buildReleaseDcu /ResFileMasks /urb /noop 
/v 
&lt;/li&gt;
&lt;li&gt;Команда Undo &quot;build&quot; (alpha) - восстанавливает Output folders из резервной 
копии (.bak) после неудачной сборки. 
&lt;/li&gt;
&lt;li&gt;переименование прямо в дереве с файлами (F2) (без Undo) 
&lt;/li&gt;
&lt;li&gt;Исправлена куча ошибок (особенно в консольной версии). Спасибо за баг-репорты!&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Скриншоты&lt;/h3&gt;
Редактор Portable инсталляций:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuv6_TIoTuEYihOAoNJb-syQuVxQmiNzC7h2CkrLEawkDOsKnXLefi7Ncxu2yFW0WPiYZmKg_jzHgCfrTHYUxx28IBUZi8FYxpoUpL_JZmb2IW6MBCgAyLmthudxK4R3n0nAlVvQrvHsM/s1600/PortableInstallation_d2010example.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuv6_TIoTuEYihOAoNJb-syQuVxQmiNzC7h2CkrLEawkDOsKnXLefi7Ncxu2yFW0WPiYZmKg_jzHgCfrTHYUxx28IBUZi8FYxpoUpL_JZmb2IW6MBCgAyLmthudxK4R3n0nAlVvQrvHsM/s1600/PortableInstallation_d2010example.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Навигация в Build log:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_xilTJCs_WtfZGiksg87rfeikykiZUWtbC6rfFYQwua5VKA44rymb6IToY5fQlwSm8c9Xh18hUIC8txS4q8chKdbuBdzkXjszfVioP_7_jQt1ZwXlLNGG37csn8QLHhghZrvLFhPEANI/s1600/BuildLog_navigationToolbar.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_xilTJCs_WtfZGiksg87rfeikykiZUWtbC6rfFYQwua5VKA44rymb6IToY5fQlwSm8c9Xh18hUIC8txS4q8chKdbuBdzkXjszfVioP_7_jQt1ZwXlLNGG37csn8QLHhghZrvLFhPEANI/s1600/BuildLog_navigationToolbar.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;













&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/4448335040699291051/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2016/03/lazy-delphi-builder-356.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/4448335040699291051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/4448335040699291051'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2016/03/lazy-delphi-builder-356.html' title='Lazy Delphi Builder 1.14.14.356 доступен'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuv6_TIoTuEYihOAoNJb-syQuVxQmiNzC7h2CkrLEawkDOsKnXLefi7Ncxu2yFW0WPiYZmKg_jzHgCfrTHYUxx28IBUZi8FYxpoUpL_JZmb2IW6MBCgAyLmthudxK4R3n0nAlVvQrvHsM/s72-c/PortableInstallation_d2010example.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-2841823314918835288</id><published>2015-09-16T15:14:00.000+03:00</published><updated>2015-09-19T16:22:44.785+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="know how"/><category scheme="http://www.blogger.com/atom/ns#" term="работа"/><title type='text'>Изменение курсора и автоматическое восстановление при выходе из метода</title><content type='html'>&lt;p&gt;Не знаю как у вас, а у меня коде (vcl приложение) полным-полно таких конструкций:&lt;/p&gt;

&lt;pre class=&quot;brush: delphi;&quot;&gt;var
  tmpOldCursor: TCursor;
begin  
  tmpOldCursor := Screen.Cursor;
  try
    Screen.Cursor := crHourglass;
    // код который может работать относительно долго
    // например, выполнять запрос в БД
  finally
    Screen.Cursor := tmpOldCursor;
  end;
end;&lt;/pre&gt;

&lt;p&gt;И мне это надоело. По двум причинам:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;увеличение размера модулей - по 8 строк кода на каждый такой случай &lt;/li&gt;

  &lt;li&gt;разбухание секции uses, ведь чтобы это работало нужно в каждый модуль работающий с курсором добавить uses Forms, Controls; &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Поэтому давайте уже воспользуемся механизмом подсчёта ссылок в интерфейсах, и реализуем маленький класс избавляющий нас написания лишнего кода. Так чтобы вышеприведённый пример можно было упростить до 1й строки.&lt;/p&gt;

&lt;pre class=&quot;brush: delphi;&quot;&gt;begin  
  TLazyCursorHelper.ChangeToHourglass;
  // код который может работать относительно долго
  // например, выполнять запрос в БД
end; // а здесь курсор должен восстановиться&lt;/pre&gt;

&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;p&gt;&lt;strike&gt;Дайте мне знать, если вы знаете в каких случаях это не будет работать как задумывалось, или столкнётесь с такой ситуацией. В последнем случае, укажите пожалуйста в комментарии версию Delphi, платформу и была ли включена оптимизация при сборке.&lt;/strike&gt;&lt;/p&gt;
&lt;p&gt;update: в комментариях дали ссылку на &lt;a href=&quot;http://blog.barrkel.com/2010/01/one-liner-raii-in-delphi.html&quot;&gt;более универсальное и элегантное решение от Barry Kelly&lt;/a&gt; (который долгое время занимался разработкой компилятора dcc32 в Borland/Embarcadero). Barry уверяет, что такой способ весьма надёжен.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://gist.github.com/tdelphi/8af75d167229f47a227a&quot; target=&quot;_blank&quot;&gt;Реализация TLazyCursorHelper&lt;/a&gt;:&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/tdelphi/8af75d167229f47a227a.js&quot;&gt;&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/2841823314918835288/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2015/09/LazyCursorHelper.html#comment-form' title='Комментарии: 11'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/2841823314918835288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/2841823314918835288'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2015/09/LazyCursorHelper.html' title='Изменение курсора и автоматическое восстановление при выходе из метода'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-3985077348813066930</id><published>2014-03-30T02:25:00.001+02:00</published><updated>2014-03-30T02:25:31.755+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="Firemonkey"/><category scheme="http://www.blogger.com/atom/ns#" term="know how"/><title type='text'>Delphi for Android: играем звук при встряхивании</title><content type='html'>&lt;p&gt;Обещанного 3 года ждут. А план таков, что &lt;a href=&quot;http://www.tdelphiblog.com/2013/10/1-android.html&quot;&gt;программку для детей&lt;/a&gt; мы всё-равно еще не скоро допишем (сомневаюсь что есть смысл её дописывать). &lt;/p&gt;  &lt;p&gt;Поэтому давайте зафигачим что-нибудь простенькое и бесполезное. Например что-то типа эмулятора кнута Индианы Джонса. As seen on tv. Типа того, что &lt;a href=&quot;http://www.youtube.com/watch?v=96dLxor1pAQ&quot;&gt;показывали в Теории Большого Взрыва&lt;/a&gt; много &lt;strike&gt;лет&lt;/strike&gt; сезонов назад. Только вместо кнута будем использовать колокольчик. А назовём проект LazyShaker.&lt;/p&gt;  &lt;p&gt;Для тех, кто предпочитает не засорять сознание &lt;a href=&quot;http://lurkmore.to/%D0%A1%D0%B8%D1%82%D0%BA%D0%BE%D0%BC&quot;&gt;ситкомами&lt;/a&gt; расскажу суть. Программка должна воспроизводить звук при встряхивании. Всё. Способы применения - самые разнообразные, но в основном одинаково бесполезные и ограничивающиеся привлечением внимания.&lt;/p&gt;  &lt;p&gt;Исходный код проекта я &lt;a href=&quot;https://github.com/tdelphi/LazyShaker&quot; target=&quot;_blank&quot;&gt;выложил на github&lt;/a&gt;. А собранное приложение &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.tdelphiblog.LazyShaker&quot; target=&quot;_blank&quot;&gt;на Google Play&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Под катом объяснение того как всё это работает.&lt;/p&gt;  &lt;a name=&#39;more&#39;&gt;&lt;/a&gt;  &lt;h4&gt;Работа с сенсором&lt;/h4&gt;  &lt;p&gt;Для отслеживания встряхивания воспользуемся компонентом TMotionSensor. Опрашивать сенсор будем по таймеру (как это показано &lt;a href=&quot;http://sourceforge.net/p/radstudiodemos/code/HEAD/tree/branches/RadStudio_XE5_Update/MobileCodeSnippets/Delphi/Accelerometer/&quot;&gt;в демке&lt;/a&gt;), каждые 5 миллисекунд. &lt;/p&gt;  &lt;p&gt;Сделаем свой класс TLazyShakeSensor реализующий следующий интерфейс:&lt;/p&gt;  &lt;p&gt;&amp;#160; TLazyShakeSensor = class    &lt;br /&gt;&amp;#160; public     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; procedure InitSensors;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; procedure DeInitSensors;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; property OnShake: TNotifyEvent read FOnShake write FOnShake;     &lt;br /&gt;&amp;#160; end;&lt;/p&gt;  &lt;p&gt;Внутри класса спрячем:&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; FMotionSensor: TMotionSensor;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; FTimer: TTimer;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; // обработчик события OnTimer для таймера&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; procedure DoOnSensorDataChanged(Sender: TObject);&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; // а этот метод будет вызывать событие OnShake    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; procedure DoTriggerShakeEvent;&lt;/p&gt;  &lt;h4&gt;Воспроизведение звука&lt;/h4&gt;  &lt;p&gt;А для воспроизведения звука - нам вполне хватит стандартного TMediaPlayer-а. Просто бросим компонент TMediaPlayer на форму. Также сделаем метод PlayDefaulSound - который будет проигрывать звук.&lt;/p&gt;  &lt;p&gt;Сам звук добавим в проект через Deployment Manager. Это будет mp3 файл, который я нашёл через find-sounds.org. Для добавленного файла изменим destination path с .\ на .\assets\internal. См. скриншот ниже.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOUKmRPKXfIHx10YK84eVXahigV87GsonQMzEJcDNSryFIQN1W39ihqrhNuUwSN3GtF4ImJGqzZmmRItcebBMdPgiaV_cUbn88NFjLP4V_wTv1-OWaISgEJRTPn8oalgVJMrl_7qgYOU4/s1600-h/image%25255B3%25255D.png&quot;&gt;&lt;img title=&quot;Appmethod deployment manager&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;Appmethod deployment manager&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrVuqFbpUj5-sNhQX75ryOAN2c8g6GXqP4o3mKg5dnqWfoQ4qJsA7PFvlIfSPi65_9DikMS7F9GW08v53iTHZOkUazuzW3r-0AyehhDHNULU0pLGrIh8N9aDvNoB3DVaRWD7lvJzcL1xw/?imgmax=800&quot; width=&quot;644&quot; height=&quot;304&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Внутри формы создадим экземпляр класса TLazyShakeSensor и назначим ему обработчик события. В качестве обработчика просто объявим в коде формы свою процедуру с сигнатурой как у типа TNotifyEvent (procedure ProcName(Sender: TObject)). Из обработчика будем вызывать метод формы PlayDefaultSound; &lt;/p&gt;  &lt;h4&gt;GUI&lt;/h4&gt;  &lt;p&gt;Нам нужна возможность полностью закрыть программу, чтобы она не продолжала работать в фоне и не звенела при ходьбе. Для этого добавим на форму кнопку, к которой прикрепим стандартный action &lt;a href=&quot;http://docwiki.embarcadero.com/Libraries/XE5/en/FMX.StdActns.TFileExit&quot;&gt;TFileExit&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;А чтобы форма не пустовала, добавим туда TImage с картинкой. Картинку возьмём в png формате &lt;a href=&quot;https://openclipart.org/detail/179503/ringing-bell-by-algotruneman-179503&quot;&gt;на сайте OpenClipart&lt;/a&gt; (лицензия Public Domain). hint: Размер картинки выбирайте сами какой хотите. Здесь я не советчик, так как до сих пор не понимаю, каким образом эта картинка будет масштабироваться на устройствах с разным разрешением. Идеальным вариантом, конечно был бы использовать SVG, но к сожалению, ни android ни firemonkey такой возможности не предоставляют.&lt;/p&gt;  &lt;h4&gt;Ссылки по теме&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.embarcadero.com/ru/products/delphi/android-ios-code-samples-xe5&quot;&gt;Delphi Android &amp;amp; Ios code samples&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  </content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/3985077348813066930/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2014/03/delphi-for-android.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/3985077348813066930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/3985077348813066930'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2014/03/delphi-for-android.html' title='Delphi for Android: играем звук при встряхивании'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrVuqFbpUj5-sNhQX75ryOAN2c8g6GXqP4o3mKg5dnqWfoQ4qJsA7PFvlIfSPi65_9DikMS7F9GW08v53iTHZOkUazuzW3r-0AyehhDHNULU0pLGrIh8N9aDvNoB3DVaRWD7lvJzcL1xw/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-7189627563289159823</id><published>2014-03-19T22:47:00.001+02:00</published><updated>2014-03-19T22:47:50.533+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogroll"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="Firemonkey"/><title type='text'>AppMethod: первые впечатления от trial-a</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Установщик trial-a скачивался не то чтобы быстро. 50мб тянулись дольше 10 минут. Причём, это ограничение со стороны Embarcadero (по крайней мере, для Латвии), так как обычно такие файлы скачиваются за пару секунд. &lt;/p&gt;  &lt;p&gt;Зато сама установка прошла минут за 20 (включая скачивание всех пакетов). Однако не стоит забывать что это trial версия и исходные коды RTL и FMX не устанавливались. Также, вроде не устанавливался ни &lt;a title=&quot;Официальный сайт Fast Report для Delphi&quot; href=&quot;http://www.fast-report.com/ru/products/report-generator-for-delphi-fastreport-4.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Fast Report&lt;/a&gt;, ни логгер-забыл-как-он-там-называется, ни Beyond compare.&lt;/p&gt;  &lt;p&gt;Первое, что бросается в глаза - переделанный внешний вид. Все иконки на основных тулбарах заменены (на плоские иконки (оппа-metro-style!) без антиалиасинга). &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2rgIlsYmk55ItTuq2fabMiq07jt5w_i86sJoCygISsg88UmdWrYfsH1mbvLeg78jmXsW4dtHADBIMtjaXdY9eo0oKPB1_dedF7_l-DfunW5EftpR4yMv9g2C7eP01sNyMkKhwR-o6bas/s1600-h/image24.png&quot;&gt;&lt;img title=&quot;AppMethod main form&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;AppMethod main form&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu-tjNaU1phZmL9j-f7pNf1C6pwX9pc6oHqfH2VfMvNImGKpAqXnLGZGfcs-WWiOJkX20nsdJUBn81MLDgx55rvkYjdR8WAdXR0sNioOJbUoNYWpXGGVEJY63T4h_m5JHyDGkMWpqBkNc/?imgmax=800&quot; width=&quot;943&quot; height=&quot;804&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Созданный в Delphi XE5 проекты открылись, собрались установились в телефон и заработали без каких-либо проблем. &lt;/p&gt;  &lt;p&gt;Внимание, если при запуске программы на Android устройстве у вас появляется Linker error, то это значит, что скорее всего вы забыли сделать rebuild проекту. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Мне не удалось проверить работу &lt;a href=&quot;http://www.lazyproject.info/&quot; target=&quot;_blank&quot;&gt;Lazy Delphi Builder&lt;/a&gt;, так как с trial-ом вместо рабочего dcc32 всегда ставится mock exe-шка только и умеющая что выводить текст: &lt;/p&gt;  &lt;p&gt;&lt;em&gt;This version of the product does not support command line compiling.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Хорошая же новость в том, что Lazy Delphi Builder всё ж таки определяет установленный AppMethod и находит файлы компиляторов. Так что, по идее, должно работать. (я проверял с &lt;a href=&quot;http://www.tdelphiblog.com/2014/03/lazy-delphi-builder-1109269-15032014.html&quot; target=&quot;_blank&quot;&gt;269 билдом&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;Резюмируя: если б мне не приходилось большую часть времени заниматься сопровождением VCL проектов, я бы с огромным удовольствием переключился на AppMethod.&lt;/p&gt;  &lt;p&gt;p.s. (= И кстати, эта версия носит почётный 13й номер и ставится в папку &lt;em&gt;Embarcadero\Appmethod\13.0\ &lt;/em&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/7189627563289159823/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2014/03/appmethod-trial-a.html#comment-form' title='Комментарии: 8'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/7189627563289159823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/7189627563289159823'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2014/03/appmethod-trial-a.html' title='AppMethod: первые впечатления от trial-a'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu-tjNaU1phZmL9j-f7pNf1C6pwX9pc6oHqfH2VfMvNImGKpAqXnLGZGfcs-WWiOJkX20nsdJUBn81MLDgx55rvkYjdR8WAdXR0sNioOJbUoNYWpXGGVEJY63T4h_m5JHyDGkMWpqBkNc/s72-c?imgmax=800" height="72" width="72"/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-6365801387590909805</id><published>2014-03-18T21:20:00.001+02:00</published><updated>2014-03-18T23:33:32.676+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Blogroll"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><title type='text'>Официально вышел AppMethod</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Trial версию можно получить тут: &lt;a title=&quot;http://www.appmethod.com/free-trial&quot; href=&quot;http://www.appmethod.com/free-trial&quot;&gt;http://www.appmethod.com/free-trial&lt;/a&gt; (требуется простейшая регистрация, ключ приходит на email).&lt;/p&gt;  &lt;p&gt;На цены можно посмотреть тут: &lt;a title=&quot;http://www.appmethod.com/pricing&quot; href=&quot;http://www.appmethod.com/pricing&quot;&gt;http://www.appmethod.com/pricing&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Бесплатной версии судя по всему нету. &lt;a href=&quot;http://www.embarcadero.com/products/rad-studio/appmethod-faq&quot; target=&quot;_blank&quot;&gt;FAQ на страничке Embarcadero теперь утверждает&lt;/a&gt; следующее:&lt;/p&gt;  &lt;h6&gt;&lt;a href=&quot;http://www.embarcadero.com/products/rad-studio/appmethod-faq#&quot;&gt;Q) I read there will be a free edition of Appmethod. Any additional information on this?&lt;/a&gt;&lt;/h6&gt;  &lt;p&gt;As part of our plan to make Appmethod available to as many developers as possible, we have discussed and considered a free Appmethod subscription level for release at a future date. If a free subscription level is made available, it will have platform, form factor, screen size, feature, and distribution restrictions. While there has been discussion of a free Appmethod edition, there is as of yet no official committed plan to release a free edition beyond a Free Trial Edition.&lt;/p&gt;  &lt;p&gt;Я это понимаю так: &lt;/p&gt;  &lt;p&gt;Бесплатная версия возможно и появится в будущем, но у неё будут ограничения по платформам, form factor, размеру экрана, фичам и ограничения по распостранению. Хотя возможность предоставления бесплатной подписки и обсуждалось, в данный момент официально подтвержденного плана выпустить бесплатную версию нет. Но за trial платить не надо.&lt;/p&gt;  &lt;p&gt;p.s. кстати, в качестве issue tracker-a для AppMethod Embarcadero предлагает использовать Jira! bye bye Quality Central? &lt;img class=&quot;wlEmoticon wlEmoticon-winkingsmile&quot; style=&quot;border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none&quot; alt=&quot;Подмигивающая рожица&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRDTyWUaLT960cyexv7AydTl7G4nze8yucSj1ofQQBN-SfzZra0SdRphBDg5F7ZDd9Itc0dkEH30j4b5-X6Wu3dE4c5dWOw6tevDJZdfTlOCN9484CARJ16jlMcMUqi1UwzIF7k7U1Gd0/?imgmax=800&quot; /&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/6365801387590909805/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2014/03/appmethod.html#comment-form' title='Комментарии: 6'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/6365801387590909805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/6365801387590909805'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2014/03/appmethod.html' title='Официально вышел AppMethod'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRDTyWUaLT960cyexv7AydTl7G4nze8yucSj1ofQQBN-SfzZra0SdRphBDg5F7ZDd9Itc0dkEH30j4b5-X6Wu3dE4c5dWOw6tevDJZdfTlOCN9484CARJ16jlMcMUqi1UwzIF7k7U1Gd0/s72-c?imgmax=800" height="72" width="72"/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-1235618572633053295</id><published>2014-03-16T22:53:00.001+02:00</published><updated>2014-03-16T22:53:21.121+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogroll"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="Lazy Delphi Builder"/><category scheme="http://www.blogger.com/atom/ns#" term="инструменты"/><title type='text'>Lazy Delphi Builder 1.10.9.269 от 15.03.2014.</title><content type='html'>&lt;p&gt;Выложил небольшой апдейт. В основном это исправление багов.&lt;/p&gt;  &lt;p&gt;15.03.2014. Lazy Delphi Builder 1.10.9.269:    &lt;br /&gt;0. Исправлено: угадывание версий Delphi не работало для XE5, XE6     &lt;br /&gt;1. Исправлено: некорректно отображалось название для XE6 (спасибо nda за репорт)     &lt;br /&gt;2. Изменено: reset build status теперь работает для выделенных нескольких узлов     &lt;br /&gt;3. Исправлено: если lazyDbp файл загружался через Recent меню, его название не попадало в диалоги Open/Save     &lt;br /&gt;4. Изменено: добавлена пара новых правил для угадайки версии Delphi (не работало для VirtualTreeview)     &lt;br /&gt;5. Новое: создание при компиляции файлов для C++ Builder (чекбокс в Build dialog). NB: Если C++ Builder не установлен, то вообще ничего компилироваться не будет! (такова особенность dcc32 + моих рук)&lt;/p&gt;  &lt;p&gt;Скачивать &lt;a href=&quot;https://bitbucket.org/tdelphi/lazy-delphi-builder-downloads/downloads&quot; target=&quot;_blank&quot;&gt;на bitbucket&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;As seen on torry.net!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img src=&quot;http://torry.net/images/torry_logo.png&quot; width=&quot;118&quot; height=&quot;76&quot; /&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/1235618572633053295/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2014/03/lazy-delphi-builder-1109269-15032014.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/1235618572633053295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/1235618572633053295'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2014/03/lazy-delphi-builder-1109269-15032014.html' title='Lazy Delphi Builder 1.10.9.269 от 15.03.2014.'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-9210984416176646374</id><published>2014-03-15T14:44:00.001+02:00</published><updated>2014-03-15T14:45:54.341+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Blogroll"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><title type='text'>Спаси Delphi, помоги зоопарку: GSmart Aku A1</title><content type='html'>&lt;p&gt;Всеволод как-то &lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2014/02/07/zoo/&quot; target=&quot;_blank&quot;&gt;предложил описать устройства&lt;/a&gt;, которые можно успешно использовать для разработки на Delphi XE5. Вот мои пять евроцентов. &lt;/p&gt;  &lt;p&gt;1. Автор обзора: Алексей Тимохин&lt;/p&gt;  &lt;p&gt;2. Название телефона: Gigabyte GSmart Aku A1 (год выпуска 2013). Мощный (quad core) и бюджетный (5000-6000 рублей) телефон. Слабые места: камера, экран (углы обзора). &lt;a href=&quot;http://4pda.ru/forum/index.php?showtopic=491775&quot; target=&quot;_blank&quot;&gt;Ссылка на обсуждение Aku A1 на форуме 4pda&lt;/a&gt; – там же можно найти отзывы и ответ на любой вопрос.&lt;/p&gt;  &lt;p&gt;3. Как ставилось, были ли сложности, &amp;quot;лекарство&amp;quot;, трюки, чудо (оно как-то само), шаманство и т. д. Драйвер из ASDK не сработал. Помог &lt;a href=&quot;http://www.gigabytecm.com/en/goodscontent.php?id=10&amp;amp;type=2&quot;&gt;драйвер с официального сайта&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;4. Фото телефона:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE4Tz-f_ub4ey3YqdhiF2bFcAqOAkngXo17y1X1kaR3pFKzJ__9MVZZl4j1ka7JhUSb0-kKWz8F_cEOsuVrvmrvv9fiyZ88k0EXzFCIMetAOSsq22SU65jjMHtKMw6xgf2kJU4KUX87qQ/s1600-h/2014-03-15%25252014_40_58-DSC06505%25255B10%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;2014-03-15 14_40_58-DSC06505&quot; border=&quot;0&quot; alt=&quot;2014-03-15 14_40_58-DSC06505&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgkT0qf3_O3ujwaWakg7GVyp4OOLZsOyyBVCXOJ01HlxF486NyPMsxHlFkoh5jk4V042iztAuzW-hMrTbvdeOhsNqqUPOFc1KbiaheLK2K8rNMF7e8T7reAhkA8bPG-SGGSyuELu3JaUY/?imgmax=800&quot; width=&quot;644&quot; height=&quot;397&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;5. Разное: недорогое мощное устройство с 2 sim-картами. На момент покупки (декабрь 2013) Aku A1 лидировал по соотношению цена/производительность+отсутствие проблем. Из недостатков – плохие углы обзора (искажение цветов), внутренняя память очень быстро забивается (тут мне помог рут и удаление части предустановленного барахла).&lt;/p&gt;  &lt;p&gt;У меня не возникало никаких проблем с запуском программ написанных на Delphi. (проверял разные демки а также и программы опубликованные в Play Store).&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/9210984416176646374/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2014/03/delphi-gsmart-aku-a1.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/9210984416176646374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/9210984416176646374'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2014/03/delphi-gsmart-aku-a1.html' title='Спаси Delphi, помоги зоопарку: GSmart Aku A1'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgkT0qf3_O3ujwaWakg7GVyp4OOLZsOyyBVCXOJ01HlxF486NyPMsxHlFkoh5jk4V042iztAuzW-hMrTbvdeOhsNqqUPOFc1KbiaheLK2K8rNMF7e8T7reAhkA8bPG-SGGSyuELu3JaUY/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-858170268692509687</id><published>2014-03-07T23:20:00.001+02:00</published><updated>2014-03-08T03:15:00.544+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogroll"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="бла бла бла"/><category scheme="http://www.blogger.com/atom/ns#" term="инструменты"/><title type='text'>AppMethod – новая IDE только для Firemonkey от Embarcadero.</title><content type='html'>&lt;p&gt;И кстати, пользуясь случаем хочу &lt;strike&gt;передать привет&lt;/strike&gt; хочу &lt;a href=&quot;http://edn.embarcadero.com/article/43677&quot; target=&quot;_blank&quot;&gt;дать ссылку на Roadmap для Delphi на 2014 год&lt;/a&gt;.&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;Embarcadero готовит что-то новенькое. Причём, у этого чего-то еще будет и бесплатная редакция. Последняя бесплатная IDE, насколько я помню была у Turbo Delphi в далёком 2006, которая вроде даже была довольно популярна несмотря на некоторые ограничения.&lt;/p&gt;  &lt;p&gt;Продукт будет называться &lt;strong&gt;&lt;a href=&quot;http://www.appmethod.com/&quot;&gt;AppMethod&lt;/a&gt;&lt;/strong&gt;. И будет представлять собой версию RAD Studio только для Firemonkey (без VCL). Для пользователей полной RAD Studio, продукт скорее всего не будет представлять интереса. А вот для новых клиентов заинтересованных в кроссплатформенной разработке, это должно быть интересно.&lt;/p&gt;  &lt;p&gt;Согласно &lt;a href=&quot;http://techcrunch.com/2014/03/06/embarcadero-launches-appmethod-a-new-multi-device-development-platform-for-native-apps/&quot;&gt;информации от Techcrunch&lt;/a&gt;, нам обещают бесплатную редакцию для индивидуальных разработчиков (которая будет поддерживать сборку под Android и deploy максимум на 5 устройств (интересно, как это будет ограничиваться)).&lt;/p&gt;  &lt;p&gt;Коммерческие лицензии будут доступны по подписке на год.&lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Имхо&lt;/h3&gt;  &lt;p&gt;Хотя подписка на год и портит всю малину, но всё-равно браво, маркетологи Embarcadero.&lt;/p&gt;  &lt;p&gt;Причины:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Во-первых, в IDE будет меньше package-й - и запуск IDE должен стать быстрее. &lt;/li&gt;    &lt;li&gt;Во-вторых, меньше компонентов в палитре, что упростит повседневную работу (особенно для тех, кто только начинает) как пользователям, так и службе поддержки. &lt;/li&gt;    &lt;li&gt;В-третьих, бесплатная версия для Android - отличный ход для популяризации Firemonkey. Одна из характерных черт Android платформы там больше любят халяву. Там больше бесплатных приложений. Хотелось бы мечтать, что бесплатная версия всё же позволит публиковаться в Google Play, но что-то подсказывает мне что нет. Что ж. Будем меняться исходниками. Стимулируя Open Source, я надеюсь выиграет всё сообщество Delphi разработчиков. &lt;/li&gt;    &lt;li&gt;В-четвертых, новый бренд. молодцы, интересный ход. Упоминание Delphi почему-то частенько вызывает ярко-выраженную аллергическую реакцию. Посмотрим как с этим пойдёт. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Ложки дёгтя:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;AppMethod, не такой выговариваемый, как Делфи. Сравните: делфи, делфай, аппмитод, аппметод. &lt;/li&gt;    &lt;li&gt;Годовая подписка. А что через год - что ли нельзя больше ничего собрать будет? &lt;/li&gt;    &lt;li&gt;Годовая подписка за разработчика/за платформу. Хотите 4 платформы - умножайте на 4? &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Источники:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.embarcadero.com/ru/products/rad-studio/appmethod-faq&quot;&gt;Официальный Appmethod FAQ на сайте Embarcadero&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.appmethod.com/&quot;&gt;Официальный сайт AppMethod&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://techcrunch.com/2014/03/06/embarcadero-launches-appmethod-a-new-multi-device-development-platform-for-native-apps/&quot;&gt;Анонс на techcrunch&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;p.s. В публичном доступе – с 18 марта (дата найдена в интернетах).&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/858170268692509687/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2014/03/appmethodide-dlja-firemonkey-ot.html#comment-form' title='Комментарии: 9'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/858170268692509687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/858170268692509687'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2014/03/appmethodide-dlja-firemonkey-ot.html' title='AppMethod – новая IDE только для Firemonkey от Embarcadero.'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-8360011556262855552</id><published>2014-02-28T00:01:00.001+02:00</published><updated>2014-02-28T00:01:53.480+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogroll"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="Lazy Delphi Builder"/><category scheme="http://www.blogger.com/atom/ns#" term="инструменты"/><title type='text'>Lazy Delphi Builder 1.10.8.268 Alpha от 27.02.2014.</title><content type='html'>&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Скачивать &lt;/strong&gt;&lt;a href=&quot;https://bitbucket.org/tdelphi/lazy-delphi-builder-downloads/downloads&quot;&gt;&lt;strong&gt;здесь&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Очень много нововведений. Существенно переписано ядро. Экспериментальный устаревший TasksEx отвечавший за работу в фоне, заменен на &lt;a href=&quot;http://roman.yankovsky.me/?p=1100&quot;&gt;Awaitable модуль от Романа Янковского&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Если обнаружите ошибку, пожалуйста, сообщите.&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;История изменений&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Новое:      &lt;ol&gt;       &lt;li&gt;Возможность использовать dccaarm, dcciosarm, dccios32 для сборки &lt;/li&gt;        &lt;li&gt;Появилась возможность компилировать только debug или только release - в Build dialog добавлена галочка Build release dcus. &lt;/li&gt;        &lt;li&gt;Добавлены preset-ы для scan file masks &lt;/li&gt;        &lt;li&gt;Добавлен preset &amp;quot;default&amp;quot; чтобы дать возможность сбросить настройки к значениям по умолчанию. Реализовано для: output directories, file scan masks &lt;/li&gt;        &lt;li&gt;В диалоге Build settings теперь показывается страница настроек Search Paths &lt;/li&gt;        &lt;li&gt;Выводить Total build time в конце билда &lt;/li&gt;        &lt;li&gt;В дереве файлов: Check Wizard (Ctrl+W) - диалог дающий возможность выделить/снять выделение с файлов относящихся к выбранной версии Delphi. &lt;/li&gt;        &lt;li&gt;Menu -&amp;gt; File -&amp;gt; добавлен пункт Merge profile, который позволяет обновить текущий профиль данными из другого профиля. &lt;/li&gt;        &lt;li&gt;Base out dir теперь сохраняется в LazyDBP файле. &lt;/li&gt;        &lt;li&gt;Оптимизирована скорость обработки найденных файлов &lt;/li&gt;        &lt;li&gt;В дереве файлов для проектов и пакетов:          &lt;ol&gt;           &lt;li&gt;Теперь можно увидеть статус сборки (build status) (?? - не собирался, ok - собрался корректно, er - ошибка компиляции) &lt;/li&gt;            &lt;li&gt;Фильтр теперь прячет папки в которых нет ни одного видимого файла &lt;/li&gt;            &lt;li&gt;В всплывающее меню добавлены команды:              &lt;ol&gt;               &lt;li&gt;Сброс статус компиляции (может быть полезно, если вы хотите пересобрать этот пакет в режиме Continue Build) - Скопировать в буфер обмена лог инсталляции Найти проблемный пакет в Build Log-е &lt;/li&gt;                &lt;li&gt;В Info panel теперь показывается к какой версии Delphi относится данный файл (угадайка). &lt;/li&gt;             &lt;/ol&gt;           &lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Исправления:      &lt;ol&gt;       &lt;li&gt;При загрузке профиля из файла, игнорируется указанная в нём версия Delphi &lt;/li&gt;        &lt;li&gt;В диалоге Build settings при запуске в temp/test mode не блокируются пресеты в каталогах - можно загрузить пресет и изменить папку &lt;/li&gt;        &lt;li&gt;Игнорировалась значение указанное в Break after N errors (Build settings) &lt;/li&gt;        &lt;li&gt;Если в профиле была указана инсталляция: XE 3 Architect. А на машине, где загружаем этот профиль установлена Enterprise - то внешне все будет выглядеть прилично, но при нажатии на Compile появится ошибка Assertion failure (uLazyIdeProxy.pas, line 886) LazyInstaller.CurrentInstallation not assigned. &lt;/li&gt;        &lt;li&gt;При очистке профиля не очищается список Environment variables и Lazy Search paths &lt;/li&gt;        &lt;li&gt;Для namespaces показывается некорректный список Recent(MRU) &lt;/li&gt;        &lt;li&gt;В Build диалоге не отрисовывался фон в визарде &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;UI:      &lt;ol&gt;       &lt;li&gt;Installation log переименован в Build log &lt;/li&gt;        &lt;li&gt;Блокировать пункт меню Edit -&amp;gt; Find, если текущая закладка не поддерживает поиск &lt;/li&gt;        &lt;li&gt;В Save as диалог теперь подставляется имя файла загруженного профиля &lt;/li&gt;        &lt;li&gt;Build dialog: добавить возможность указать CustomCompiler (раньше это можно было сделать только напрямую в файле LazyDBP). &lt;/li&gt;        &lt;li&gt;В статусной строке теперь показывается количество проектов собранных с ошибкой. &lt;/li&gt;        &lt;li&gt;В дереве файлов оптимизирована скорость переключения из режима списка в режим дерева. (теперь быстрее примерно на 46%) &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;a name=&#39;more&#39;&gt;&lt;/a&gt;  &lt;h4&gt;Скриншоты&lt;/h4&gt;  &lt;p&gt;Check Wizard (Ctrl+W) – этот диалог позволяет отметить/выделить в дереве файлы относящиеся к выбранной версии Delphi. (экспериментальная функция)&lt;/p&gt;  &lt;p&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;Окно Check Wizard в Lazy Delphi Builder&quot; border=&quot;0&quot; alt=&quot;Окно Check Wizard в Lazy Delphi Builder&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEge2yow0fHSKF2kFEJB_NHRQdItFLONExeD2CCSZMs1eSWP8KpHuTw3v6si3BnNxauDGQHxGpT0w9iiwsBhPC5a-m7-HZZVYXg3UPDj8pMoSJA2OXlc7Wgl7bHaRwm4lu3yNkd009DieOE/?imgmax=800&quot; width=&quot;439&quot; height=&quot;435&quot; /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Search paths в Build dialog-е&lt;/p&gt;  &lt;p&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;Search paths в Build dialog-е в Lazy Delphi Builder&quot; border=&quot;0&quot; alt=&quot;Search paths в Build dialog-е в Lazy Delphi Builder&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ7TciJIKFR4ahhyphenhyphentim3606uopbgj6q5LeIFqCXt7rI4bQotRvcX1qLj-BOG9xBHatSEyuVI5nv_YGxrNbycNE7Pe9NPrMUDwft6ZEtRsqcarsPbVyW8fiFvP1hxt4Jc0F9QY28WxdpWE/?imgmax=800&quot; width=&quot;476&quot; height=&quot;484&quot; /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Показ числа ошибок компиляции в Status bar&lt;/p&gt;  &lt;p&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;Показ числа ошибок компиляции в Status bar в Lazy Builder&quot; border=&quot;0&quot; alt=&quot;Показ числа ошибок компиляции в Status bar&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2VXoLrfcSA0SoueqNU9bqClifuiTyldhFqFiehcJpOdkjF0TnvC8ZwdFDgnsD1YU-DqyEMIHqP-n492hLG-19rHGxY6kf9SugcZd4HDx_xx2_viAHHyTy6Jo2cF2YGJzo_SUmd6T1ebY/?imgmax=800&quot; width=&quot;499&quot; height=&quot;29&quot; /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Новые пункты меню в дереве с файлами&lt;/p&gt;  &lt;p&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;Новые пункты меню в дереве с файлами в Lazy Delphi Builder&quot; border=&quot;0&quot; alt=&quot;Новые пункты меню в дереве с файлами&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga6S4H61RsQoHK2CZXXJGG0jwMBup2bKVC9V_UxcytC9DKgpYYGmRZu09F4msyGUtirGpZcIIGS1JjhsGacKMAwWLRrYt2Msdzrldwoq12DM5yoQJvntcKtOoMJXLqB0r42DtiI3jHREA/?imgmax=800&quot; width=&quot;486&quot; height=&quot;403&quot; /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Встроенный preset DEFAULT позволяющий вернуться к настройкам по умолчанию&lt;/p&gt;  &lt;p&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;Встроенный preset DEFAULT позволяющий вернуться к настройкам по умолчанию в Lazy Delphi Builder&quot; border=&quot;0&quot; alt=&quot;Встроенный preset DEFAULT позволяющий вернуться к настройкам по умолчанию&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj94dZwfuGDiFqiwR5E_Tu58vA0riUBIzAdEsipNXwq_lQoU-xmOQ917U1S3kXlrH2mcbVRwPnBCTOqWK8quIKwwbLMt07uwbi_bNs2sT_gA1CEx_TBDK-UEBjFaBmCPySRXWqwOCTuhQQ/?imgmax=800&quot; width=&quot;307&quot; height=&quot;175&quot; /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Диалог импорта данных из другого профиля&lt;/p&gt;  &lt;p&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;Диалог импорта данных из другого профиля в Lazy Delphi Builder&quot; border=&quot;0&quot; alt=&quot;Диалог импорта данных из другого профиля&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQiCP3NM2eZR59PGWgbJLVbJC08VYXcEdnjQWer3rEzMFoE8wwatXx-z6NTLnHhn62GMhblrinbcUOQ160utlX_4moGuWT1-RW8eEhVgeWi2CZclCaF9CceleE_v5rQHoTtXMqbVlVvTU/?imgmax=800&quot; width=&quot;591&quot; height=&quot;409&quot; /&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/8360011556262855552/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2014/02/lazy-delphi-builder-1108268-alpha.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/8360011556262855552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/8360011556262855552'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2014/02/lazy-delphi-builder-1108268-alpha.html' title='Lazy Delphi Builder 1.10.8.268 Alpha от 27.02.2014.'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEge2yow0fHSKF2kFEJB_NHRQdItFLONExeD2CCSZMs1eSWP8KpHuTw3v6si3BnNxauDGQHxGpT0w9iiwsBhPC5a-m7-HZZVYXg3UPDj8pMoSJA2OXlc7Wgl7bHaRwm4lu3yNkd009DieOE/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-5530227974306174197</id><published>2014-02-20T23:38:00.001+02:00</published><updated>2014-02-21T22:35:26.444+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogroll"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="обзор"/><category scheme="http://www.blogger.com/atom/ns#" term="подведение итогов"/><title type='text'>Лучшее в Delphi блогах за 2013 год.</title><content type='html'>&lt;p&gt;&amp;#160;&lt;strong&gt;Обновлено 2014.02.21 22:34&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style=&quot;display: inline; float: right&quot; align=&quot;right&quot; src=&quot;https://openclipart.org/image/300px/svg_to_png/103351/best-year-sticker.png&quot; width=&quot;201&quot; height=&quot;240&quot; /&gt;Подборка ссылок на лучшие публикации по Delphi за 2013 год.&lt;/p&gt;    &lt;hr /&gt;    &lt;p&gt;Аналогичные подборки за предыдущие годы:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2010/01/2009.html&quot;&gt;за &lt;b&gt;2009&lt;/b&gt; год&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2011/03/delphi-2010.html&quot;&gt;за &lt;b&gt;2010&lt;/b&gt; год&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2012/04/samoe-interesnoe-v-delphi-blogah-za.html&quot;&gt;за &lt;b&gt;2011&lt;/b&gt; год&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2013/03/luchshee-o-delphi-za-2012-god.html&quot;&gt;за &lt;b&gt;2012&lt;/b&gt; год&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;a name=&#39;more&#39;&gt;&lt;/a&gt;  &lt;hr /&gt;  &lt;h3&gt;Оглавление&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;#firemonkey&quot;&gt;Firemonkey. Кроссплатформенная разработка и разработка для мобильных устройств&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a href=&quot;#mobile&quot;&gt;Мобильная разработка&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#ios&quot;&gt;Delphi. Разработка для iOs&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#android&quot;&gt;Delphi. Разработка для Android&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#delphi&quot;&gt;Delphi&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#help&quot;&gt;pascal-study&amp;#160; svg. Переводы справочной системы Delphi&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#quiz&quot;&gt;Задачки на понимание&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#libraries&quot;&gt;Библиотеки и компоненты&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a href=&quot;#author&quot;&gt;Авторские библиотеки&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#ribbon&quot;&gt;Windows Ribbon Framework&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#tools&quot;&gt;Инструменты&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#tips&quot;&gt;Полезные и не очень советы&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#license&quot;&gt;Управление лицензиями RAD Studio&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#webinars&quot;&gt;Вебинары.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#interviews&quot;&gt;Интервью&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#lulin&quot;&gt;Поток сознания Александра Люлина&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел Firemonkey&quot; href=&quot;#firemonkey&quot;&gt;#&lt;/a&gt;&amp;#160;&lt;a name=&quot;firemonkey&quot;&gt;Firemonkey. Кроссплатформенная разработка и разработка для мобильных устройств&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_6148.html&quot;&gt;Оконные сообщения в FireMonkey&lt;/a&gt;. Андрей Терехов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_6117.html&quot;&gt;Вопросы и предложения по FireMonkey (FM Platform) (IDE) #1&lt;/a&gt;. Андрей Терехов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://fire-monkey.ru/page/articles/_/articles/graphics/graphics-screenshot&quot;&gt;FireMonkey. Графика. Делаем скриншот любого &lt;/a&gt;контрола. Автор не указан &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://ginne.ru/node/61&quot;&gt;Создание компонентов в FireMonkey на примере кнопки с картинкой&lt;/a&gt;. Alex (ginne.ru) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://ginne.ru/node/60&quot;&gt;Использование шейдерных эффектов в FireMonkey 2.0&lt;/a&gt;.&amp;#160; Alex (ginne.ru) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://ginne.ru/node/59&quot;&gt;Создание кроссплатформенного сервиса на примере снимка экрана&lt;/a&gt;.&amp;#160; Alex (ginne.ru) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2013/10/07/room3/&quot;&gt;Комната 3D, Delphi, Платформа приложений FM&lt;/a&gt;. Всеволод Леонов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/roschinspb/2013/04/15/tcaretru/&quot;&gt;Каретка в Fire Monkey&lt;/a&gt; (XE4). Сергей Рощин. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/roschinspb/2013/04/03/subcategoryru/&quot;&gt;Про категории и подкатегории в TActionList&lt;/a&gt;. Сергей Рощин. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/roschinspb/2013/04/08/tanicalculationsru/&quot;&gt;Платформонезависимый скроллинг в Fire Monkey&lt;/a&gt; (XE4). Сергей Рощин. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/roschinspb/2013/09/03/popupxe5ru/&quot;&gt;Всплывающие формы в XE5&lt;/a&gt; (FormStyle и TCustomPopupForm). Сергей Рощин. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/yaroslavbrovin/2013/04/16/tlinkedlabel/&quot;&gt;Часть 3. Разработка компонентов под FMX 2.0. Кликабельная метка&lt;/a&gt;. Ярослав Бровин. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/yaroslavbrovin/2013/06/17/firemonkey-bitmap-scanline/&quot;&gt;FireMonkey. Доступ к пикселям TBitmap. Аналог Scanline из VCL.&lt;/a&gt; Ярослав Бровин. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/01/firemonkey-ot-prostogo-k-slozhnomu-14-pervyj-opyt-raboty-s-3d/&quot;&gt;FireMonkey. От простого к сложному #14. Первый опыт работы с 3D.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a name=&quot;3459433026762292945&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://keeper89.blogspot.com/2013/07/os-x.html&quot;&gt;Как программно завершить работу, сделать перезагрузку, перевести компьютер в ждущий режим или выйти из системы в OS X? Юрий Петров&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://roman.yankovsky.me/?p=1172&quot;&gt;Кроссплатформенность и модальные формы&lt;/a&gt;. Роман Янковский.&lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел Мобильная разработка&quot; href=&quot;#mobile&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;mobile&quot;&gt;Мобильная разработка&lt;/a&gt;&lt;/h4&gt;  &lt;h5&gt;Разработка кроссплатформенных мобильных приложений в Delphi. Автор: firemonkey.&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/company/delphi/blog/199026/&quot;&gt;Разработка кроссплатформенных мобильных приложений в Delphi #1&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/company/delphi/blog/200490/&quot;&gt;Разработка кроссплатформенных мобильных приложений в Delphi #2&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/company/delphi/blog/201352/&quot;&gt;Разработка кроссплатформенных мобильных приложений в Delphi #3&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/company/delphi/blog/202302/&quot;&gt;Разработка кроссплатформенных мобильных приложений в Delphi #4&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/company/delphi/blog/203266/&quot;&gt;Разработка кроссплатформенных мобильных приложений в Delphi #5&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/company/delphi/blog/205194/&quot;&gt;Несколько советов, которые помогут сделать процесс мобильной разработки более комфортным&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/nikolay/2013/04/14/sensorsorientation/&quot;&gt;Пробуем датчики. Ориентация устройства в пространстве.&lt;/a&gt; Nikolay (Embarcadero) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/nikolay/2013/04/03/sensorscommon/&quot;&gt;Пробуем датчики для мобильных устройств&lt;/a&gt; - Рассмотрим работу TSensorManager и что нам может предоставить айфон, и, в скором будущем, устройство с андроидом. Nikolay (Embarcadero) &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел Разработка для iOs&quot; href=&quot;#ios&quot;&gt;#&lt;/a&gt;&amp;#160;&lt;a name=&quot;ios&quot;&gt;Разработка для iOs&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2013/04/23/dios_dev_hardware/&quot;&gt;Delphi for iOS необходимое оборудование&lt;/a&gt;. Всеволод Леонов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2013/06/11/dios_dev_software/&quot;&gt;Delphi for iOS необходимое программное обеспечение&lt;/a&gt;. Всеволод Леонов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/03/delphi-for-ios/&quot;&gt;Delphi for iOS: предварительный обзор продукта&lt;/a&gt;. Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/03/delphi-for-ios-komponent-twebbrowser-dlya-firemonkey/&quot;&gt;Delphi for iOS: компонент TWebBrowser для FireMonkey.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://keeper89.blogspot.com/2013/07/osx-ios-delphi-xe2-xe3-xe4-1.html&quot;&gt;Получение информации о системе в OSX и iOS с помощью Delphi (XE2, XE3, XE4) - Часть 1. Юрий Петров&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://keeper89.blogspot.com/2013/07/osx-ios-delphi-xe2-xe3-xe4-2.html&quot;&gt;Получение информации о системе в OSX и iOS с помощью Delphi (XE2, XE3, XE4) - Часть 2. Юрий Петров&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел Разработка для Android&quot; href=&quot;#android&quot;&gt;#&lt;/a&gt;&amp;#160;&lt;a name=&quot;android&quot;&gt;Разработка для Android&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/08/vvedenie-v-razrabotku-pod-android-instrumenty-razrabotchika/&quot;&gt;Введение в разработку под Android: инструменты разработчика.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/08/delphi-xe5-pervoe-prilozhenie-dlya-android/&quot;&gt;Delphi XE5: первое приложение для Android.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/09/universalnyj-sposob-snyatiya-skrinshotov-s-android-ustrojstv/&quot;&gt;Универсальный способ снятия скриншотов с Android-устройств&lt;/a&gt;. Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/10/delphi-xe5-rabota-so-shriftami-v-prilozheniyax-dlya-android/&quot;&gt;Delphi XE5: работа со шрифтами в приложениях для Android.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/12/delphi-xe5-neskolko-poleznyx-i-ne-ochen-primerov-po-rabote-s-android/&quot;&gt;Delphi XE5: несколько полезных и не очень примеров по работе с Android.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/09/problema-delphi-xe5-ne-opredelyaet-moyo-android-ustrojstvo-v-target/&quot;&gt;Проблема: Delphi XE5 не определяет моё Android-устройство в Target.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/11/delphi-xe5-kitajskij-kalendar-dlya-android/&quot;&gt;Delphi XE5: Китайский календарь для Android.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/12/delphi-xe5-eshhyo-odin-primer-ispolzovaniya-rest-client-library/&quot;&gt;Delphi XE5: ещё один пример использования REST Client Library&lt;/a&gt;. Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/09/delphi-xe5-rest-client-library/&quot;&gt;Delphi XE5: REST Client Library&lt;/a&gt;. Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2013/12/2-android.html&quot;&gt;Пишем детскую программку под Android: основа&lt;/a&gt;. Алексей Тимохин. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2013/10/sovmestimostjandroididelphi.html&quot;&gt;Легкий способ проверить Android устройство на совмесимость.&lt;/a&gt; Алексей Тимохин. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2013/12/fmx-mobile-vpe4atlenija.html&quot;&gt;Delphi XE5: впечатления от разработки под Android&lt;/a&gt;. Алексей Тимохин.&lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://roman.yankovsky.me/?p=996&quot;&gt;Работа с TCanvas в Delphi под Android&lt;/a&gt;. Роман Янковский.&lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://roman.yankovsky.me/?p=1321&quot;&gt;WordLines — работа на конкурс&lt;/a&gt;. Роман Янковский.&lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Разработка логической игры для Android на Delphi. Николай Зверев.&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2013/11/delphi-android-tap1.html&quot;&gt;Delphi плюс Android? Есть идея! Tap#1&lt;/a&gt;. Начало.&lt;a name=&quot;8264943083650345888&quot;&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2013/11/delphi-android-tap2.html&quot;&gt;Delphi плюс Android? Есть идея! Tap#2&lt;/a&gt;. РИсование персонажа в дизайнере. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2013/12/delphi-android-tap3.html&quot;&gt;Delphi плюс Android? Есть идея! Tap#3&lt;/a&gt;. Масштабирование персонажа. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2013/12/delphi-android-tap4.html&quot;&gt;Delphi плюс Android? Есть идея! Tap#4&lt;/a&gt;. Анимация. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2013/12/delphi-android-tap5.html&quot;&gt;Delphi плюс Android? Есть идея! Tap#5&lt;/a&gt;. Завершение. &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;&lt;a name=&quot;6467337224155026563&quot;&gt;&lt;/a&gt;Пишем для Android. Автор: Андрей Ефимов&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://delphifmandroid.blogspot.com/2013/11/fmxmediatmediaplayer-mp3-android.html&quot;&gt;FMX.Media.TMediaPlayer или пишем свой mp3-плеер для Android&#39;а #1&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphifmandroid.blogspot.com/2013/11/fmxmediatmediaplayer-mp3-android-2.html&quot;&gt;FMX.Media.TMediaPlayer или пишем свой mp3-плеер для Android&#39;а #2&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphifmandroid.blogspot.com/2013/12/delphi-xe5.html&quot;&gt;Проверка подключения к интернету на мобильных устройствах с Delphi XE5&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphifmandroid.blogspot.com/2013/12/blog-post.html&quot;&gt;Перемещение элементов управления в видимую область, при отображении виртуальной клавиатуры.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphifmandroid.blogspot.com/2013/10/blog-post.html&quot;&gt;Жизненный цикл мобильного приложения&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphifmandroid.blogspot.com/2013/10/android.html&quot;&gt;Работаем с кнопками на Android устройствах&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphifmandroid.blogspot.com/2013/10/blog-post_28.html&quot;&gt;Создаём выдвижное боковое меню в приложении&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphifmandroid.blogspot.com/2013/10/tbutton-tspeedbutton.html&quot;&gt;Как закрыть приложение при помощи кнопки TButton или TSpeedButton&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphifmandroid.blogspot.com/2013/10/android_29.html&quot;&gt;Создание выпадающего меню в приложении на Android&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphifmandroid.blogspot.com/2013/10/blog-post_30.html&quot;&gt;Как загрузить пользовательские стили во время выполнения приложения&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphifmandroid.blogspot.com/2013/11/delphi-xe5-ios-android.html&quot;&gt;Delphi XE5 iOS и Android, поддерживаемые форматы медиа файлов&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphifmandroid.blogspot.com/2013/11/delphi-xe5-ios-android-map-my-location.html&quot;&gt;Delphi XE5 iOS и Android, одна строчка кода - Map My Location&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphifmandroid.blogspot.com/2013/11/shared-preferences.html&quot;&gt;Сохраняем настройки приложения, используя Shared Preferences&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphifmandroid.blogspot.com/2013/11/blog-post.html&quot;&gt;Определяем, поддерживается ли наше устройство для разработки приложений&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphifmandroid.blogspot.com/2013/11/firemonkey.html&quot;&gt;Изменение FireMonkey стиля во время выполнения приложения&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел Delphi&quot; href=&quot;#delphi&quot;&gt;#&lt;/a&gt;&amp;#160;&lt;a name=&quot;delphi&quot;&gt;Delphi&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.gunsmoker.ru/2013/04/plugins-9.html&quot;&gt;Разработка системы плагинов, часть 9: подводные камни. Александр Алексеев&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.gunsmoker.ru/2013/08/fix-ugly-api-userless-callback.html&quot;&gt;Исправляем плохой дизайн API: функции обратного вызова без user-аргумента. Александр Алексеев&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.gunsmoker.ru/2013/01/WinAPI1.html&quot;&gt;Программирование на WinAPI, часть 1 - где искать информацию. Александр Алексеев&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://cemick.blogspot.com/2013/02/delphi-raise-exception.html&quot;&gt;Подводные камни при работе с исключениями в Delphi: Raise Exception, AcquireExceptionObject, исключения операционной системы&lt;/a&gt;. Семен Хмелёв &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://keeper89.blogspot.com/2013/02/blog-post_18.html&quot;&gt;Вопросы производительности в конструкторах динамических массивов. &lt;/a&gt;&lt;a href=&quot;http://keeper89.blogspot.com/2013/07/os-x.html&quot;&gt;Юрий Петров&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.gunsmoker.ru/2013/05/modern-delphi.html&quot;&gt;Эволюция Delphi: современные возможности. Александр Алексеев&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.gunsmoker.ru/2013/02/delphi-friendliness.html&quot;&gt;&amp;quot;Дружественность&amp;quot; в Delphi. Александр Алексеев&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.gunsmoker.ru/2013/01/optimization-basics.html&quot;&gt;Основы оптимизации прикладных программ на Delphi. Александр Алексеев&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://cemick.blogspot.com/2013/02/delphi-raise-exception.html&quot;&gt;Подводные камни при работе с исключениями в Delphi: Raise Exception, AcquireExceptionObject, исключения операционной системы&lt;/a&gt;. Семен Хмелёв &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://alexander-bagel.blogspot.com/2013/04/blog-post.html&quot;&gt;Атомарные операции&lt;/a&gt;. А зачем нужен префикс LOCK, или его аналог InterlockedDecrement. Александр (Rouse_) Багель &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://alexander-bagel.blogspot.com/2013/11/pmm2.html&quot;&gt;Карта памяти процесса&lt;/a&gt;. Задумывались ли вы над тем, как именно используется память, доступная вашей программе, да и вообще, что именно размещается в этих двух-трех гигабайтах виртуальной памяти, с которыми работает ваше ПО? &lt;/li&gt;    &lt;li&gt;&lt;a name=&quot;5726185027889042608&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://alexander-bagel.blogspot.com/2013/03/draw-over-twincontrol.html&quot;&gt;Рисуем поверх TWinControl&lt;/a&gt;. &lt;a href=&quot;http://www.blogger.com/profile/03072586754182036553&quot;&gt;Александр (Rouse_) Багель&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/178007/&quot;&gt;Изучаем отладчик, часть первая&lt;/a&gt;. Александр (Rouse_) Багель &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/178159/&quot;&gt;Изучаем отладчик, часть вторая&lt;/a&gt;. Александр (Rouse_) Багель &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/178183/&quot;&gt;Изучаем отладчик, часть третья&lt;/a&gt;. Александр (Rouse_) Багель &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/177625/&quot;&gt;Отключение главной нити приложения от отладчика и уход от перехвата CreateFile()&lt;/a&gt; . Александр (Rouse_) Багель &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/178189/&quot;&gt;Простой способ обнаружения эмуляторов ключа Guardant&lt;/a&gt;. Александр (Rouse_) Багель &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/178393/&quot;&gt;Реализация перехвата вызовов API&lt;/a&gt;. Александр (Rouse_) Багель &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/181157/&quot;&gt;Правильное применение сплайсинга при перехвате функций подготовленных к HotPatch&lt;/a&gt;. Александр (Rouse_) Багель &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/202242/&quot;&gt;Карта памяти процесса&lt;/a&gt;. Александр (Rouse_) Багель &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://roman.yankovsky.me/?p=942&quot;&gt;Дженерики: ограничение «constructor»&lt;/a&gt;. Роман Янковский.&lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://roman.yankovsky.me/?p=896&quot;&gt;Разработка «стандартных» TAction&lt;/a&gt;. Роман Янковский.&lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://roman.yankovsky.me/?p=740&quot;&gt;TInvokeableVariantType&lt;/a&gt;. Роман Янковский.&lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Константин Шпилько об enumerators:&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://delphiway.ru/enumerators-%d0%b2-delphi-%d1%87%d0%b0%d1%81%d1%82%d1%8c-1/&quot;&gt;Enumerators в Delphi. Часть 1&lt;/a&gt;. Цикл for-in. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphiway.ru/enumerators-%d0%b2-delphi-%d1%87%d0%b0%d1%81%d1%82%d1%8c-2/&quot;&gt;Enumerators в Delphi. Часть 2&lt;/a&gt;. Получение и использование перечислителя без for-in. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphiway.ru/enumerators-%d0%b2-delphi-%d1%87%d0%b0%d1%81%d1%82%d1%8c-3/&quot;&gt;Enumerators в Delphi. Часть 3&lt;/a&gt;. Enumerators и class helper. &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Переводы от Александра Алексеева.&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a name=&quot;6075779989360404226&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.transl-gunsmoker.ru/2013/01/BOOL-VARIANTBOOL-BOOLEAN-bool.html&quot;&gt;BOOL vs. VARIANT_BOOL vs. BOOLEAN vs. bool. Это перевод &lt;/a&gt;&lt;a href=&quot;http://blogs.msdn.com/b/oldnewthing/archive/2004/12/22/329884.aspx&quot;&gt;BOOL vs. VARIANT_BOOL vs. BOOLEAN vs. bool&lt;/a&gt;. Автор: Реймонд Чен. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.transl-gunsmoker.ru/2013/03/why-does-explorer-use-term-KB-instead-KiB.html&quot;&gt;Почему Проводник показывает сокращение KB вместо KiB? Это перевод &lt;/a&gt;&lt;a href=&quot;http://blogs.msdn.com/b/oldnewthing/archive/2009/06/11/9725386.aspx&quot;&gt;Why does Explorer use the term KB instead of KiB?&lt;/a&gt; Автор: Реймонд Чен. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.transl-gunsmoker.ru/2013/03/remarks-VirtualAlloc-MEMLARGEPAGES.html&quot;&gt;Заметки о VirtualAlloc с MEM_LARGE_PAGES. Это перевод &lt;/a&gt;&lt;a href=&quot;http://blogs.msdn.com/b/oldnewthing/archive/2011/01/28/10121300.aspx&quot;&gt;Some remarks on VirtualAlloc and MEM_LARGE_PAGES&lt;/a&gt;. Автор: Реймонд Чен. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.transl-gunsmoker.ru/2013/10/help-me-optimize-this-code-which-enumerates-all-possible-GUIDs.html&quot;&gt;Помогите с оптимизацией кода перечисления всех возможных GUID&lt;/a&gt;. Это перевод &lt;a href=&quot;http://blogs.msdn.com/b/oldnewthing/archive/2013/10/29/10461148.aspx&quot;&gt;Help me optimize this code which enumerates all possible GUIDs&lt;/a&gt;. Автор: Реймонд Чен. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.transl-gunsmoker.ru/2013/11/launch-unelevated-process-from-elevated-process-and-vice-versa.html&quot;&gt;Как мне запустить ограниченный процесс из моего повышенного процесса и наоборот? Это перевод &lt;/a&gt;&lt;a href=&quot;http://blogs.msdn.com/b/oldnewthing/archive/2013/11/18/10468726.aspx&quot;&gt;How can I launch an unelevated process from my elevated process and vice versa?&lt;/a&gt; Автор: Реймонд Чен. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел Переводы справочной системы Delphi&quot; href=&quot;#help&quot;&gt;#&lt;/a&gt;&amp;#160;&lt;a name=&quot;help&quot;&gt;Переводы справочной системы Delphi&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2013/04/blog-post.html&quot;&gt;Библиотеки и пакеты&lt;/a&gt;. Перевод раздела &lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/XE3/en/Libraries_and_Packages&quot;&gt;Libraries and Packages (Delphi)&lt;/a&gt; из справочной системы Delphi &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2013/04/blog-post_4117.html&quot;&gt;Пакеты&lt;/a&gt;. Перевод раздела &lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/XE3/en/Packages&quot;&gt;Packages (Delphi)&lt;/a&gt; из справочной системы Delphi &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2013/04/blog-post_12.html&quot;&gt;Разработка динамически загружаемых библиотек&lt;/a&gt;. Перевод раздела &lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/XE3/en/Writing_Dynamically_Loaded_Libraries&quot;&gt;Writing Dynamically Loaded Libraries&lt;/a&gt; из справочной системы Delphi &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2013/03/blog-post.html&quot;&gt;Ввод/вывод. Стандартные подпрограммы&lt;/a&gt;. Перевод раздела &lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/XE3/en/Standard_Routines_and_Input-Output&quot;&gt;Standard Routines and Input-Output&lt;/a&gt; из справочной системы Delphi &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2013/08/blog-post_4590.html&quot;&gt;Объекты автоматизации&lt;/a&gt;. Перевод раздела &lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/XE3/en/Automation_Objects_(Win32_Only)&quot;&gt;Automation Objects (Win32 Only)&lt;/a&gt; из справочной системы Delphi &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2013/08/blog-post_8385.html&quot;&gt;Обращение к интерфейсам&lt;/a&gt;. Перевод раздела &lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/XE3/en/Interface_References&quot;&gt;Interface References&lt;/a&gt; из справочной системы Delphi &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2013/08/blog-post_30.html&quot;&gt;Реализация интерфейсов&lt;/a&gt;. Перевод раздела &lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/XE3/en/Implementing_Interfaces&quot;&gt;Implementing Interfaces&lt;/a&gt; из справочной системы Delphi &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2013/08/blog-post.html&quot;&gt;Интерфейсы объектов&lt;/a&gt;. Перевод раздела &lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/XE3/en/Object_Interfaces&quot;&gt;Object Interfaces (Delphi)&lt;/a&gt; из справочной системы Delphi &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2013/04/blog-post_9984.html&quot;&gt;Кросс-платформенные библиотеки&lt;/a&gt;. Перевод раздела &lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/XE3/en/Cross-Platform_Shared_Libraries&quot;&gt;Cross-Platform Shared Libraries&lt;/a&gt; из справочной системы Delphi &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел Задачки на понимание&quot; href=&quot;#quiz&quot;&gt;#&lt;/a&gt;&amp;#160;&lt;a name=&quot;quiz&quot;&gt;Задачки на понимание&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://alexander-bagel.blogspot.com/2013/12/2.html&quot;&gt;Задачка на понимание №2&lt;/a&gt;. Это уже достаточно старая задача, лет семь (если не отказала память) живет в моих тестах на профпригодность, выдаваемых кандидатам при собеседовании. И ответ на задачку. &lt;a href=&quot;http://alexander-bagel.blogspot.com/2013/12/2_23.html&quot;&gt;Ответ на задачку №2, часть первая&lt;/a&gt;. &lt;a href=&quot;http://www.blogger.com/profile/03072586754182036553&quot;&gt;Александр (Rouse_) Багель&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://alexander-bagel.blogspot.com/2013/12/1.html&quot;&gt;Задачка на понимание №1&lt;/a&gt;. &lt;a name=&quot;7893840830380744420&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://alexander-bagel.blogspot.com/2013/12/1_19.html&quot;&gt;Ответ на задачу №1&lt;/a&gt;. &lt;a href=&quot;http://www.blogger.com/profile/03072586754182036553&quot;&gt;Александр (Rouse_) Багель&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.gunsmoker.ru/2013/12/hell.html&quot;&gt;Страшный ужас. Александр Алексеев&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.gunsmoker.ru/2013/09/task-17.html&quot;&gt;Задачка №17. Александр Алексеев&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел Библиотеки и компоненты&quot; href=&quot;#libraries&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;libraries&quot;&gt;Библиотеки и компоненты&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/189808/&quot;&gt;jqGrid для Raudus&lt;/a&gt;. Андрей Севериненко. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/170909/&quot;&gt;Использование OpenCV в Delphi&lt;/a&gt;. Habrahabr. Sleuthhound. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://alexander-bagel.blogspot.com/2013/04/lua.html&quot;&gt;Использование Lua скриптов в составе ПО&lt;/a&gt;. Александр (Rouse_) Багель &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2013/03/dependency-injection-i-delphi-spring-9.html&quot;&gt;Головокружительные возможности DI и Delphi Spring: &lt;/a&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2013/03/dependency-injection-i-delphi-spring-9.html&quot;&gt;Часть 9. Один интерфейс – несколько реализаций.&lt;/a&gt; (перевод): Алексей Тимохин. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_5845.html&quot;&gt;Первое использование VirtualTreeView (TVirtualStringTree)&lt;/a&gt;. Андрей Терехов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/06/obzor-5-reshenij-dlya-sozdaniya-i-raboty-s-pdf-v-delphi/&quot;&gt;Обзор: 5 решений для создания и работы с PDF в Delphi.&lt;/a&gt; Владислав Баженов. &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;TChart&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://keeper89.blogspot.com/2013/01/tchart.html&quot;&gt;Штриховка в TChart. Андрей Терехов.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_5887.html&quot;&gt;Сглаженные кривые в TeeChart&lt;/a&gt;. Андрей Терехов &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;SynapseLib&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/03/rabota-s-smtp-v-synapse/&quot;&gt;Работа с SMTP в Synapse.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/12/kniga-o-synapse-glava-0-sokety/&quot;&gt;Книга о Synapse. Глава 0 «Сокеты».&lt;/a&gt; Владислав Баженов. &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;TMS Cloud Pack 2&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/06/obzor-komponentov-tms-cloud-pack-2-0-0-0-1-komponent-dlya-raboty-s-google-calendar/&quot;&gt;Обзор компонентов TMS Cloud Pack 2.0.0.0 #1: компонент для работы с Google Calendar.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/06/obzor-komponentov-tms-cloud-pack-2-0-0-0-2-komponent-dlya-raboty-s-dropbox/&quot;&gt;Обзор компонентов TMS Cloud Pack 2.0.0.0 #2: компонент для работы с Dropbox.&lt;/a&gt; Владислав Баженов. &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Datasnap&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_6113.html&quot;&gt;Знакомство с DataSnap&lt;/a&gt;. Андрей Терехов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_6106.html&quot;&gt;Ссылки по DataSnap&lt;/a&gt;. Андрей Терехов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/202688/&quot;&gt;Пример использования DataSnap Callback: запрос данных от пользователя во время вызова серверного метода&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Fast Report&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.fast-report.com/ru/blog/46/show/&quot;&gt;Установка FastReport 4 для Lazarus&lt;/a&gt;. &lt;a href=&quot;http://www.fast-report.com/ru/blog/?author=den26481&quot;&gt;Den Zubov&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.fast-report.com/ru/blog/52/show/&quot;&gt;Отправить отчёт по протоколу MAPI из программ на Паскале&lt;/a&gt;. &lt;a href=&quot;http://www.fast-report.com/ru/blog/?author=alman&quot;&gt;Aleksey Mandrykin&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;TChromium&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://parsing-and-i.blogspot.com/2013/01/tchromium-cookies-in-delphi.html&quot;&gt;Компонент TChromium: начало работы, установка. Маша&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://parsing-and-i.blogspot.com/2013/02/tchromium-how-to-fill-and-submit-form.html&quot;&gt;TChromium: заполнение и сабмит формы. &lt;/a&gt;&lt;a href=&quot;http://parsing-and-i.blogspot.com/2013/01/tchromium-cookies-in-delphi.html&quot;&gt;Маша&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://parsing-and-i.blogspot.com/2013/02/how-to-clear-cookies-in-TChromium.html&quot;&gt;Как удалить кукисы (cookies) в TChromium. &lt;/a&gt;&lt;a href=&quot;http://parsing-and-i.blogspot.com/2013/01/tchromium-cookies-in-delphi.html&quot;&gt;Маша&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphiway.ru/chromium-%d0%b8-%d0%bf%d1%80%d0%be%d0%ba%d1%81%d0%b8-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80/&quot;&gt;Chromium и прокси-сервер&lt;/a&gt;. Константин Шпилько. &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;SQLite&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://parsing-and-i.blogspot.com/2013/01/sqlite-delphi-7-disqlite.html&quot;&gt;SQLite и Delphi 7: работа с БД с помощью DISQLite. &lt;/a&gt;&lt;a href=&quot;http://parsing-and-i.blogspot.com/2013/01/tchromium-cookies-in-delphi.html&quot;&gt;Маша&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/07/sqlite-v-delphi-obzor-litedac/&quot;&gt;SQLite в Delphi. Обзор LiteDAC.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphiway.ru/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-sqlite-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-zeoslib/&quot;&gt;Работа с SQLite через ZeosLib.&lt;/a&gt; Константин Шпилько &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;DevExpress&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;Сборник советов от X11 продолжает пополняться рецептами в этом году. Delphi, DevExpress, примеры, решения. &lt;a href=&quot;http://www.sql.ru/blogs/x11/&quot;&gt;http://www.sql.ru/blogs/x11/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://alexander-bagel.blogspot.com/2013/02/ribbon-devexpress.html&quot;&gt;Нюансы использования Ribbon от DevExpress&lt;/a&gt;. &lt;a href=&quot;http://www.blogger.com/profile/03072586754182036553&quot;&gt;Александр (Rouse_) Багель&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/02/devexpress-i-google-calendar-0-vvedenie/&quot;&gt;DevExpress и Google Calendar #0. Введение.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/02/devexpress-i-google-calendar-1-vvedenie-v-expressscheduler/&quot;&gt;DevExpress и Google Calendar #1. Введение в ExpressScheduler.&lt;/a&gt; Владислав Баженов. &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Yacc &amp;amp; Lex&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://roman.yankovsky.me/?p=467&quot;&gt;LISPообразное нечто. Роман Янковский. - пишем интерпретатор простого языка&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://roman.yankovsky.me/?p=577&quot;&gt;Next Delphi Yacc &amp;amp; Lex&lt;/a&gt;. Роман Янковский. - попытка реанимации проекта&lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://roman.yankovsky.me/?p=796&quot;&gt;Delphi и предметно-ориентированные языки&lt;/a&gt; (DSL). Роман Янковский. Пример использования Yacc и Lex&lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел Авторские библиотеки&quot; href=&quot;#author&quot;&gt;#&lt;/a&gt;&amp;#160;&lt;a name=&quot;author&quot;&gt;Авторские библиотеки&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/05/testirovanie-zaprosov-k-api-google-sredstvami-delphi-komponent-oauthclient-dlya-delphi-xe-xe3/&quot;&gt;Тестирование запросов к API Google средствами Delphi. Компонент OAuthClient для Delphi XE — XE3&lt;/a&gt;. Владислав Баженов.&lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://keeper89.blogspot.com/2013/08/numerics-delphi-fpc.html&quot;&gt;Numerics для Delphi &amp;amp; FPC (работа с большими числами). &lt;/a&gt;&lt;a href=&quot;http://keeper89.blogspot.com/2013/07/os-x.html&quot;&gt;Юрий Петров&lt;/a&gt;&amp;#160; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://roman.yankovsky.me/?p=1100&quot;&gt;Awaitable-значения в Delphi&lt;/a&gt;. Роман Янковский. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://roman.yankovsky.me/?p=1258&quot;&gt;Анонс DelphiSpec&lt;/a&gt;. Роман Янковский. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://roman.yankovsky.me/?p=1355&quot;&gt;DelphiSpec неделю спустя&lt;/a&gt;. Роман Янковский.&lt;/li&gt;    &lt;li&gt;     &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;         &lt;tr&gt;           &lt;td&gt;&lt;a href=&quot;http://delphikingdom.ru/asp/viewitem.asp?catalogid=1446&quot;&gt;Ассоциативный хеш для построения групп&lt;/a&gt; - &lt;a href=&quot;http://delphikingdom.ru/asp/users.asp?ID=3478&quot;&gt;Ирина Кудряшова&lt;/a&gt;&lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел Windows Ribbon Framework&quot; href=&quot;#ribbon&quot;&gt;#&lt;/a&gt;&amp;#160;&lt;a name=&quot;ribbon&quot;&gt;Windows Ribbon Framework&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Переводы статей Эрика ван Билсена об использовании Windows Ribbon Framework в Delphi. Переводил &lt;a href=&quot;http://anotherblogaboutdelphi.blogspot.com/&quot;&gt;Виталий Пелехатый &lt;/a&gt;.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://anotherblogaboutdelphi.blogspot.com/2013/07/windowsribbonframeworkfordelphi.html&quot;&gt;Windows Ribbon Framework&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://anotherblogaboutdelphi.blogspot.com/2013/07/windows-ribbon-framework.html&quot;&gt;Windows Ribbon Framework. Руководство&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://anotherblogaboutdelphi.blogspot.com/2013/07/windows-ribbon-framework-ribbon-designer.html&quot;&gt;Windows Ribbon Framework. Проектирование &amp;quot;ленты&amp;quot; с помощью Ribbon Designer&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://anotherblogaboutdelphi.blogspot.com/2013/07/windows-ribbon-framework_24.html&quot;&gt;Windows Ribbon Framework. Команды&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://anotherblogaboutdelphi.blogspot.com/2013/07/windows-ribbon-framework_25.html&quot;&gt;Windows Ribbon Framework. Представления&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://anotherblogaboutdelphi.blogspot.com/2013/07/windows-ribbon-framework_4677.html&quot;&gt;Windows Ribbon Framework. Вкладки&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://anotherblogaboutdelphi.blogspot.com/2013/07/windows-ribbon-framework_26.html&quot;&gt;Windows Ribbon Framework. Контекстные окна&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://anotherblogaboutdelphi.blogspot.com/2013/07/windows-ribbon-framework_31.html&quot;&gt;Windows Ribbon Framework. Другие возможности &amp;quot;ленты&amp;quot;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://anotherblogaboutdelphi.blogspot.com/2013/08/windows-ribbon-framework.html&quot;&gt;Windows Ribbon Framework. Масштабирование&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://anotherblogaboutdelphi.blogspot.com/2013/08/windows-ribbon-framework-delphi.html&quot;&gt;Windows Ribbon Framework. Интеграция с Delphi&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://anotherblogaboutdelphi.blogspot.com/2013/08/windows-ribbon-framework_5.html&quot;&gt;Windows Ribbon Framework. Выполнение команд&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://anotherblogaboutdelphi.blogspot.com/2013/08/windows-ribbon-framework_9246.html&quot;&gt;Windows Ribbon Framework. Другие типы команд&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://anotherblogaboutdelphi.blogspot.com/2013/08/windows-ribbon-framework_6.html&quot;&gt;Windows Ribbon Framework. Работа с галереями&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел Инструменты&quot; href=&quot;#tools&quot;&gt;#&lt;/a&gt;&amp;#160;&lt;a name=&quot;tools&quot;&gt;Инструменты&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2013/09/lazy-delphi-builder197251xe5.html&quot;&gt;Lazy Delphi Builder 1.9.7.251. 15-сен-2013 для XE5.&lt;/a&gt; Алексей Тимохин. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://deeptown12.blogspot.com/2013/10/shell-delphi-lazarus.html&quot;&gt;Полезняшки. Shell-расширения для файлов Delphi и Lazarus&lt;/a&gt;. Дмитрий Кузан &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphiway.ru/%d0%bf%d0%be%d0%bb%d0%b5%d0%b7%d0%bd%d1%8b%d0%b5-%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8-tortoisesvn/&quot;&gt;Полезные функции TortoiseSVN&lt;/a&gt;. Константин Шпилько &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphiway.ru/commit-monitor-%d0%be%d1%82%d1%81%d0%bb%d0%b5%d0%b6%d0%b8%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%ba%d0%be%d0%bc%d0%bc%d0%b8%d1%82%d0%be%d0%b2-%d0%b2-svn/&quot;&gt;Commit Monitor — отслеживание коммитов в SVN&lt;/a&gt;. Константин Шпилько &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphikingdom.ru/asp/viewitem.asp?catalogid=1447&quot;&gt;СтройКод — быстрое программирование под Delphi без знания паскаля&lt;/a&gt; &lt;a href=&quot;http://delphikingdom.ru/asp/users.asp?ID=25222&quot;&gt;Илья Кислицын&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Проект &amp;quot;Локализатор исходного кода&amp;quot;. Автор: &lt;a href=&quot;https://plus.google.com/103029391702241740789&quot;&gt;Ilya Barilo&lt;/a&gt;.&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://sourcelocalizer.blogspot.com/2013/03/blog-post.html&quot;&gt;Причины создания программы &amp;quot;Локализатор исходного кода&amp;quot;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://sourcelocalizer.blogspot.com/2013/04/blog-post.html&quot;&gt;Проверка орфографии в исходном коде проекта&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел Полезные и не очень советы&quot; href=&quot;#tips&quot;&gt;#&lt;/a&gt;&amp;#160;&lt;a name=&quot;tips&quot;&gt;Полезные и не очень советы&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/nikolay/2013/11/25/scopedenumeration/&quot;&gt;Изящный рефакторинг перечисляемых типов&lt;/a&gt;. Nikolay (Embarcadero) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphiway.ru/%d0%b0%d0%b2%d1%82%d0%be%d0%bc%d0%b0%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%b5-%d0%b4%d0%be%d0%b1%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%bd%d0%be%d0%bc%d0%b5%d1%80%d0%b0-%d1%84%d0%b8/&quot;&gt;Автоматическое добавление в приложение номера фиксации SVN во время сборки&lt;/a&gt;. Константин Шпилько &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://alexander-bagel.blogspot.com/2013/06/windows.html&quot;&gt;Сортировка списка по аналогу &amp;quot;Проводника Windows&amp;quot;&lt;/a&gt;. Александр (Rouse_) Багель &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2013/10/delphi_29.html&quot;&gt;Полезняшки. С чего мы начинаем приложение в Delphi&lt;/a&gt;. Николай Зверев &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2013/10/blog-post_23.html&quot;&gt;Полезняшки. Ссылки на модули, “помогающие” нашему приложению, выносим в отдельный модуль&lt;/a&gt;. Николай Зверев &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2013/10/focuscontrol-tlabel.html&quot;&gt;Полезняшки. Переход к FocusControl при клике на TLabel&lt;/a&gt;. Николай Зверев &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2013/11/delphi.html&quot;&gt;Шаблоны в Delphi (но не дженерики)&lt;/a&gt;. Николай Зверев. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2013/10/blog-post.html&quot;&gt;Мысли по поводу локализации строк и кодогенерации&lt;/a&gt;. Николай Зверев. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2013/11/utf8.html&quot;&gt;Полезняшки. Ограничение ввода пользователя в UTF8&lt;/a&gt;. Николай Зверев. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphiway.ru/%d0%be%d1%82%d0%bb%d0%b0%d0%b4%d0%ba%d0%b0-%d1%8d%d0%ba%d1%81%d0%bf%d0%b5%d1%80%d1%82%d0%b0-%d0%b4%d0%bb%d1%8f-delphi-%d0%bd%d0%b0-%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80%d0%b5-gexpert/&quot;&gt;Отладка эксперта для Delphi на примере GExpert&lt;/a&gt;. Константин Шпилько &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2013/11/blog-post.html&quot;&gt;Добавление ресурсов в программу&lt;/a&gt; с помощью RC файлов. Алексей Тимохин. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2013/12/delphi.html&quot;&gt;Delphi. Как указать папку &amp;quot;по умолчанию&amp;quot; для новых проектов.&lt;/a&gt; Алексей Тимохин. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://sourcelocalizer.blogspot.com/2013/03/dfm-delphi.html&quot;&gt;Решение проблем с кириллицей в dfm-файлах Delphi&lt;/a&gt;. &lt;a href=&quot;https://plus.google.com/103029391702241740789&quot;&gt;Ilya Barilo&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2013/06/blog-post.html&quot;&gt;Вот и мы перешли на Юникод&lt;/a&gt;. Николай Зверев. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/184732/&quot;&gt;Пишем ORM для Delphi&lt;/a&gt;. Ерофеев Артем. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/191170/&quot;&gt;Fluent interface и Delphi&lt;/a&gt;. Илья VLT. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/02/cvetovaya-model-ryb-ili-uchimsya-smeshivat-kraski-v-delphi/&quot;&gt;Цветовая модель RYB или учимся смешивать краски в Delphi.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2013/01/stringtable-i-rabota-s-identifikatorami-yazykov-v-delphi/&quot;&gt;STRINGTABLE и работа с идентификаторами языков в Delphi.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphiway.ru/%d0%b2%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2-lazarus/&quot;&gt;Введение в модульное тестирование в Lazarus&lt;/a&gt;. Константин Шпилько &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/178257/&quot;&gt;Паскаль, Дельфи и Оберон сегодня&lt;/a&gt;. Zorko &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Базовые формы и фреймы. Николай Зверев.&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2013/01/delphi.html&quot;&gt;А Вы ещё не используете базовую форму и базовую фрейму в своих Delphi-проектах?&lt;/a&gt;. Николай Зверев &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2013/01/blog-post.html&quot;&gt;Создание базовой формы&lt;/a&gt;. Николай Зверев &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2013/01/blog-post_30.html&quot;&gt;Наполняем базовую форму полезным кодом&lt;/a&gt;. Николай Зверев &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2013/03/form-events.html&quot;&gt;Form Events, события формы для работы с пользовательскими данными&lt;/a&gt;. Николай Зверев. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2013/06/vcl-form-and-frame-scale-fix.html&quot;&gt;VCL Form and Frame Scale Fix&lt;/a&gt;. Николай Зверев. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел Управление лицензиями RAD Studio&quot; href=&quot;#license&quot;&gt;#&lt;/a&gt;&amp;#160;&lt;a name=&quot;license&quot;&gt;Управление лицензиями RAD Studio&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/194028/&quot;&gt;Болт с обратной резьбой для .slip-ого Embarcadero RAD Studuo XE&lt;/a&gt;. Владимир Литвиненко. Совет, как не превысить число допустимых лицензий на одну зарегистрированную копию Embarcsdero RAD Studio XE. Возможно, будет полезно к прочтению системным администраторам и руководителям проектов, ... &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Установка RAD Studio с «сетевыми» лицензиями. Андрей Совцов (Embracadero):&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/asovtsov/index.php/archives/311&quot;&gt;Приручаем «облака»: установка RAD Studio с «сетевыми» лицензиями (часть первая)&lt;/a&gt; - что такое AppWare &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/asovtsov/index.php/archives/327&quot;&gt;Приручаем «облака»: установка RAD Studio с «сетевыми» лицензиями (часть вторая)&lt;/a&gt;. Подробнее об Appware. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/asovtsov/index.php/archives/360&quot;&gt;Приручаем «облака»: установка RAD Studio с «сетевыми» лицензиями (часть третья)&lt;/a&gt;. Appware: загрузка лицензий и управление пользователями. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/asovtsov/index.php/archives/386&quot;&gt;Приручаем «облака»: установка RAD Studio с «сетевыми» лицензиями (часть четвертая)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/asovtsov/index.php/archives/421&quot;&gt;Итоги по теме - Приручаем «облака»: установка RAD Studio с «сетевыми» лицензиями&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел Вебинары&quot; href=&quot;#webinars&quot;&gt;#&lt;/a&gt;&amp;#160;&lt;a name=&quot;webinars&quot;&gt;Вебинары&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2013/07/01/firstiosappdelphi/&quot;&gt;Эффективный проект для iOS в Delphi, запись вебинара&lt;/a&gt;. &lt;a href=&quot;http://youtu.be/QhvbepVE-2o&quot;&gt;Вебинар&lt;/a&gt; поможет вам определиться с первым проектом приложения для iOS с помощью &lt;a href=&quot;https://www.embarcadero.com/ru/products/delphi&quot;&gt;Delphi XE4&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2013/04/02/brovin_delphi_for_ios/&quot;&gt;Вебинар Delphi for iOS с Ярославом Бровиным (запись)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2013/02/05/firemonkey20_componentdevelopment_brovin_2/&quot;&gt;Вебинар с Ярослвавом Бровиным, разработчиком FireMonkey 2.0, 2-я серия (запись)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2013/02/18/design_process_fastrepor/&quot;&gt;Технология FastReport, как создается и развивается&lt;/a&gt;. Вебинар с Михаилом Филиппенко. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2013/11/15/fr5_preview_webinar_record/&quot;&gt;FastReport 5, предварительный обзор с Денисом Зубовым (запись вебинара)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2013/02/18/anydac/&quot;&gt;Дизайн и эволюция AnyDAC (FireDAC) с Дмитрием Арефьевым&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2013/12/17/firedac_localsql/&quot;&gt;FireDAC LocalSQL с Дмитрием Арефьевым (запись вебинара)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2013/12/24/mobilegraphicsxe5/&quot;&gt;Графика в мобильных проектах (запись вебинара)&lt;/a&gt;. Запись вебинара доступна по &lt;a href=&quot;http://youtu.be/QkB48ctPx-s&quot;&gt;ссылке&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2013/12/03/andrey_karpov_3_rec/&quot;&gt;Необычные приёмы в C++, запись вебинара&lt;/a&gt;. &lt;a href=&quot;http://youtu.be/Epd4-NYZ_OA&quot;&gt;Запись&lt;/a&gt; вебинара доступна. Рекомендуется в категории &amp;quot;расширитель кругозора&amp;quot;. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2013/03/18/cpp64bit_webinar_recorded/&quot;&gt;64-бит в C++Builder (и не только), запись вебинара&lt;/a&gt;. &lt;a href=&quot;http://youtu.be/trS6zbAPL-k&quot;&gt;Запись вебинара&lt;/a&gt;, посвященного поддержки 64-бит в C++Builder. Полезна и для пользователей Delphi. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел Интервью&quot; href=&quot;#interviews&quot;&gt;#&lt;/a&gt;&amp;#160;&lt;a name=&quot;interviews&quot;&gt;Интервью&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.cnews.ru/reviews/?2013/04/04/524834&quot;&gt;О планах Embarcadero - Интрвью с главой представительства Embarcadero в России, Кириллом Ранневым&lt;/a&gt;. (cnews) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2013/09/30/roman_yankovsky_mvp/&quot;&gt;Интервью с Романом Янковским&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2013/10/04/firstmegabytesxe5/&quot;&gt;Первые мегабайты мобильных приложений&lt;/a&gt;. Интервью с Валентиной Гусевой. Впечатления от использоваия Delphi для разработки для мобильных устройств. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2013/08/02/whyumlru/&quot;&gt;Зачем UML&lt;/a&gt;. Интервью с разработчиками компании &amp;quot;Гарант&amp;quot; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/205974/&quot;&gt;Altium Designer: самое большое приложение (about 15 000 000 codelines), сделанное в Delphi&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/company/delphi/blog/205656/&quot;&gt;Реальное мобильное приложение в Delphi для систем наблюдения&lt;/a&gt; - интервью с Digifort&amp;#160; - техническое интервьб с Eric Flemming Bonilha, разработчиком мобильного пульта для систем видеонаблюдения. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел Поток сознания Александра Люлина&quot; href=&quot;#lulin&quot;&gt;#&lt;/a&gt;&amp;#160;&lt;a name=&quot;lulin&quot;&gt;Поток сознания Александра Люлина&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://programmingmindstream.blogspot.ru/2013/11/tdd.html&quot;&gt;Что я хотел сказать о TDD, но всё как-то недосуг. &amp;quot;Дорога в тысячу ли начинается с одного шага&amp;quot;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://programmingmindstream.blogspot.ru/2013/12/dependency-injection.html&quot;&gt;Коллега написал. Пример Dependency Injection&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://programmingmindstream.blogspot.ru/2013/12/gui.html&quot;&gt;Коллега тут написал про ВЫСОКОУРОВНЕВЫЕ (GUI) тесты&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://programmingmindstream.blogspot.ru/2013/11/blog-post.html&quot;&gt;Заметки о тестировании&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://programmingmindstream.blogspot.ru/2013/11/2.html&quot;&gt;Заметки о тестировании №2&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://18delphi.blogspot.ru/2013/03/blog-post.html&quot;&gt;Первые шаги с dUnit. Воспоминания.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://18delphi.blogspot.ru/2013/03/tdd-c.html&quot;&gt;О TDD И &amp;quot;гигиене мозга&amp;quot; (C)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://18delphi.blogspot.ru/2013/03/generic-generic.html&quot;&gt;Generic&#39;и без Generic&#39;ов.... На include-ах.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://18delphi.blogspot.ru/2013/03/blog-post_29.html&quot;&gt;О шаблонах и примесях&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://18delphi.blogspot.ru/2013/03/blog-post_54.html&quot;&gt;Шаблоны и тесты DUnit&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://18delphi.blogspot.ru/2013/03/dunit_9770.html&quot;&gt;Шаблоны и тесты DUnit. Одной примесью.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://18delphi.blogspot.ru/2013/03/blog-post_4606.html&quot;&gt;Реализация подсчёта ссылок&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://18delphi.blogspot.ru/2013/04/blog-post.html&quot;&gt;О ТЗ, цейтноте и &amp;quot;позабывании&amp;quot;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://18delphi.blogspot.ru/2013/04/blog-post_7689.html&quot;&gt;Исправление ошибок методом последовательных приближений (или методом &amp;quot;научного тыканья&amp;quot;)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://18delphi.blogspot.ru/2013/04/iunknown.html&quot;&gt;Собственная реализация IUnknown и подсчёт ссылок. И примеси&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://18delphi.blogspot.ru/2013/11/5.html&quot;&gt;В думах о тестировании №5&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://18delphi.blogspot.ru/2013/11/gui-back-to-basics_22.html&quot;&gt;GUI-тестирование &amp;quot;по-русски&amp;quot;. Back to the basics. Пример нажатия на кнопку формы из скрипта&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://18delphi.blogspot.ru/2013/11/gui-25-tscriptcontext.html&quot;&gt;GUI-Тестирование &amp;quot;по-русски&amp;quot;. Как всё устроено №2.5. Про TscriptContext&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://18delphi.blogspot.ru/2013/11/gui.html&quot;&gt;Коротко. О GUI-тестировании &amp;quot;по-русски&amp;quot;&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  </content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/5530227974306174197/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2014/02/delphi-best-2013.html#comment-form' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/5530227974306174197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/5530227974306174197'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2014/02/delphi-best-2013.html' title='Лучшее в Delphi блогах за 2013 год.'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-543359675578123567</id><published>2013-12-29T11:20:00.001+02:00</published><updated>2013-12-29T11:21:13.123+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Blogroll"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="Firemonkey"/><category scheme="http://www.blogger.com/atom/ns#" term="грабли"/><category scheme="http://www.blogger.com/atom/ns#" term="обзор"/><category scheme="http://www.blogger.com/atom/ns#" term="подведение итогов"/><title type='text'>Delphi XE5: впечатления от разработки под Android</title><content type='html'>&lt;p&gt;Отправил свою программу на конкурс. Саму программу показывать пока не хочу. А хочу поделиться своими впечатлениями от использования Delphi XE5 и Firemonkey.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Сразу оговорюсь&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Это мой первый проект на Firemonkey и первый опыт разработки для Android.&lt;/li&gt;    &lt;li&gt;Я использовал Delphi XE5 + Update 1 + все хотфиксы для Update 1.&lt;/li&gt;    &lt;li&gt;Тестировал только на телефоне &lt;a href=&quot;http://www.gsmarena.com/gigabyte_gsmart_aku_a1-5610.php&quot;&gt;GSmart Aku A1&lt;/a&gt; (480 x 854 pixels, 4.5 inches (~218 ppi). Эмуляторы не использовал.&lt;/li&gt;    &lt;li&gt;Часто компилировал и запускал на Win32 в режиме &lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/XE5/en/Mobile_Preview&quot;&gt;Mobile Preview&lt;/a&gt; (об этом ниже).&lt;/li&gt;    &lt;li&gt;В этом проекте решил опробовать подход &amp;quot;как-мне-кажется-это-делают-в-java&amp;quot;, когда и для каждого класса создавал отдельный .pas файл. В результате получилась куча юнитов и чтобы в них не запутаться пришлось раскидать их по папкам и пространствам имён. Получилось в принципе удобно. &lt;font color=&quot;#666666&quot;&gt;Хотя есть у меня подозрение, что сборка проекта под Android из-за этого работал медленнее, чем в случае, если бы весь код был запихан в один .pas файл.&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Грабли&lt;/h3&gt;  &lt;h5&gt;Deployment manager и папки&lt;/h5&gt;  &lt;p&gt;&lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/XE5/en/Deployment_Manager&quot;&gt;Deployment manager&lt;/a&gt; и папки. С этим тоже пришлось повозиться прежде чем удалось понять какие надо указывать пути в Deployment manager и как потом найти эти файлы в программе. Пришлось провести небольшое исследование. О нём напишу позже, в отдельном посте. Вот только так и не понял, как же из приложения определить путь до корня SdCard. Также не понравился UI в Deployment manager-e. Редактирование пары десятков файлов сделано не очень удобно, хотя к слову сказать просто добавить пачку файлов довольно легко. &lt;/p&gt;  &lt;p&gt;Сразу уточню, что я хотел недокументированного. Искал легкий способ добавления/редактирования файлов в Deployment manager из консоли. Не получилось, так файлы добавленные через Deployment manager поначалу сохраняются в .dproj файле, хотя в папке проекта и присутствует отдельный файл .deployproj. И я так и не понял в какой момент файлы переносятся из .dproj в .deployproj файл. Вот кстати наткнулся на пост о похожем исследовании от &lt;a href=&quot;http://alhymov.blogspot.com/2013/12/deployfolder.html&quot;&gt;Павла Алхимова “DeployFolder - Развёртывание мобильного подкаталога&lt;/a&gt;”.&lt;/p&gt;  &lt;a name=&#39;more&#39;&gt;&lt;/a&gt;  &lt;h5&gt;TLang&lt;/h5&gt;  &lt;p&gt;Я писал все тексты на английском, решив позднее воспользоваться TLang для перевода на русский.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Ох уж этот TLang&lt;/i&gt;. Поначалу он находил только ресурсы с главной формы. Позже согласился собрать ресурсы из всех открытых в IDE форм. При этом упорно &lt;a href=&quot;http://qc.embarcadero.com/wc/qcmain.aspx?d=121396&quot; target=&quot;_blank&quot;&gt;игнорировал ресурсы указанные в ListBoxItem.ItemData.Detail&lt;/a&gt;. Потом выяснилось что редактор переводов TLang умеет и любит перемешивать переводы некоторых слов. Особенно, если дело касается слов для которых перевод не указан. Я так и отправил на конкурс работу в которой слово Home было переведено как Сова (не уследил). Еще добавление TLang в проект, вызывало стабильные загадочные AV в программе запущенной под Win32 при открытии формы с TabControl (лечится выключением у таб-ов свойства Autotrnslate) – но это кажется было исправлено в Update 2.&lt;/p&gt;  &lt;h5&gt;Запись звука&lt;/h5&gt;  &lt;p&gt;&lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/XE5/en/Audio_Recording&quot; target=&quot;_blank&quot;&gt;По умолчанию&lt;/a&gt; (при использовании TAudioCaptureDevice) на Android платформе Delphi записывает звук в качестве ARM 8kbps &lt;font color=&quot;#666666&quot;&gt;(и судя по упоминаниям в интернете это кстати единственный работающий кодек для записи звука в эмуляторе)&lt;/font&gt;. &lt;/p&gt;  &lt;p&gt;И при использовании TAudioCaptureDevice нет никакого способа указать другой кодек или битрейт. К счастью, в исходниках присутствует класс &lt;a href=&quot;http://developer.android.com/reference/android/media/MediaRecorder.html&quot; target=&quot;_blank&quot;&gt;JMediaRecorder&lt;/a&gt; который это умеет. Тут правда, тоже пришлось немного повозиться прежде чем удалось подобрать работающие (на моём устройстве) значения дающие звук хорошего качества. Об этом позже расскажу отдельно.&lt;/p&gt;  &lt;h5&gt;Мультитач&lt;/h5&gt;  &lt;p&gt;Пичалька. &lt;strike&gt;Его нет.&lt;/strike&gt; Точнее, я его не нашёл. Удалось найти только в виде ограниченного числа жестов. Впрочем, судя по исходникам реализации интерактивных жестов (FMX.Android.*), основа для мультитача реализована, и вероятно его как-то можно вытащить наружу.&lt;/p&gt;  &lt;h5&gt;Жесты&lt;/h5&gt;  &lt;p&gt;Насколько я понял, обработчик событий для жестов срабатывает только по окончании жеста. Включить свою анимацию в момент выполнения жеста Swipe Left/Right у меня не получилось. Но пока не теряю надежды.&lt;/p&gt;  &lt;h5&gt;IDE&lt;/h5&gt;  &lt;p&gt;Очень не хватало в дизайнере поддержки горячих клавиш Ctrl/Shift+стрелки. В Update 2 эта недоработка исправлена.&lt;/p&gt;  &lt;p&gt;Редакторы свойств по сравнению с VCL мне показались неудобными. Хотя, возможно я слишком привык пользоваться расширенными редакторами которые устанавливаются вместе с CnWizards.&lt;/p&gt;  &lt;p&gt;Жаль что линковка и deploy не умеют работать в фоне. Точнее я не нашёл как это сделать.&lt;/p&gt;  &lt;p&gt;19&amp;quot; монитора становится маловато для удобной работы.&lt;/p&gt;  &lt;h5&gt;CnWizards&lt;/h5&gt;  &lt;p&gt;Из-за &lt;a title=&quot;Описание CnWizards: оглавление&quot; href=&quot;/p/experts.html#cnWizards&quot; target=&quot;_blank&quot;&gt;CnWizards&lt;/a&gt;, F2 не работает в Project Manager.&lt;/p&gt;  &lt;p&gt;Автодополнение текста в &lt;a title=&quot;Описание Code Input Helper&quot; href=&quot;/2010/06/cnwizards-4-3-code-input-helper.html&quot; target=&quot;_blank&quot;&gt;Code Input Helper&lt;/a&gt; некорректно обрабатывает модули содержащие в названии точку (т.е. все в моём проекте). &lt;/p&gt;  &lt;h5&gt;Фреймы, формы и стили&lt;/h5&gt;  &lt;p&gt;Вдохновившись работой Николая Зверева решил заюзать в проекте фреймы. И тут же напоролся на то, что список стилей (свойство StyleLookup) для контролов на фреймах и на FMX mobile формах отличается. &lt;a href=&quot;http://qc.embarcadero.com/wc/qcmain.aspx?d=121397&quot; target=&quot;_blank&quot;&gt;Зарегистрировал баг в QC&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;А вот использование форм не понравилось, ибо я так и не нашёл способа при открытии сделать анимированный слайд при открытии другой формы.&lt;/p&gt;  &lt;h5&gt;Работа со стилями&lt;/h5&gt;  &lt;p&gt;Я постоянно запускал FMX Mobile проект на Win32 и меня ужасно раздражал тот факт, что встроенные иконки для SpeedButton-ов игнорируются при запуске на win32, хотя и видны в дизайнере и при запуске на устройстве. В конце концов я полностью переключился на свои иконки. &lt;/p&gt;  &lt;p&gt;Но честно говоря я поленился разбираться о том как правильно работать со стилями. Возможно есть более правильный способ.&lt;/p&gt;  &lt;h5&gt;Отладка и занятый порт&lt;/h5&gt;  &lt;p&gt;Поначалу, при отладке на телефоне немало нервов попортила ошибка &amp;quot;Unable to start gdbserver on port &#39;64311&#39;. Port is already in use&amp;quot;. Это известная в интернете проблема у меня проявлялась после сброса (Ctrl+F2) отлаживаемого проекта. Лечится либо перезагрузкой телефона и IDE, либо установкой другого порта: &lt;/p&gt;  &lt;p&gt;IDE -&amp;gt; Run –&amp;gt; Parameters –&amp;gt; -debugport=54321&lt;/p&gt;  &lt;p&gt;С другой стороны, благодаря этой проблеме получилось сделать шаг вперёд и чаще думать, вместо привычного подхода debugger driven developement. Кстати отладчик для Android работает непривычно по-другому (Ctrl+F7 например).&lt;/p&gt;  &lt;h5&gt;Punto Switcher и Delphi XE5&lt;/h5&gt;  &lt;p&gt;&lt;a href=&quot;http://punto.yandex.ru/&quot;&gt;Punto Switcher&lt;/a&gt; и Delphi XE5 отказались дружить на моём компьютере. Когда запущен Punto, то при закрытии моей программы, Delphi всегда вываливался в отладчик с exception-ом. Судя по стеку вызовов, какой-то конфликт с хуками Punto. &lt;/p&gt;  &lt;p&gt;Вторая беда с Punto - при закрытии проектов в IDE (Close all) и повторном открытии IDE полностью закрывалась. Даже несмотря на добавление Delphi в список исключений Punto и включенную галочку &amp;quot;Не взаимодействовать с программами исключениями&amp;quot;. Но стоило полностью выгрузить Punto из памяти - как эти проблемы пропадали. Грешу на некорректную реализацию хуков в Punto Switcher (64-bit).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Понравилось&lt;/h3&gt;  &lt;p&gt;Подход Firemonkey - любой контрол является контейнером. Можно комбинировать контролы, класть один в другой, а их вместе класть в какой-нибудь элемент списка, использовать отрицательные смещения для получения нестандартного поведения.&lt;/p&gt;  &lt;p&gt;Record helper-ы для простых типов очень радуют.&lt;/p&gt;  &lt;p&gt;Delphi наконец перестал удалять IFDEF-ы из .dpr файла при добавлении нового модуля.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://sourceforge.net/p/radstudiodemos/code/HEAD/tree/branches/&quot; target=&quot;_blank&quot;&gt;Демки&lt;/a&gt; и &lt;a href=&quot;http://www.embarcadero.com/ru/products/delphi/android-ios-code-samples-xe5&quot; target=&quot;_blank&quot;&gt;примеры (snippets)&lt;/a&gt; очень хорошо показывают как сделать что-то одно. Очень помогли.&lt;/p&gt;  &lt;p&gt;Анимации и методы типа FloatAnimation очень-очень-очень упрощают жизнь.&lt;/p&gt;  &lt;p&gt;Action-ы + существенно упрощают жизнь, особенно при работе с жестами. &lt;/p&gt;  &lt;p&gt;Понравилась работа с камерой. Я опасался, что придётся повозиться с настройками. Совершенно напрасно. Программировать вообще не пришлось. Получить снимок с камеры или из галереи проще простого - для этого есть готовые action-ы.&lt;/p&gt;  &lt;p&gt;А есть еще Live Bindings, которые я полностью проигнорировал, потому как толком не понимаю как их использовать.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Резюмируя&lt;/h3&gt;  &lt;p&gt;Общие впечатления очень приятные. Делать программу – очень просто. Даже не верится. &lt;/p&gt;  &lt;p&gt;Firemonkey выглядит более чем работоспособным. Какие-то шероховатости еще есть, но их существенно меньше чем в предыдущих версиях (впрочем, я конечно не копал глубоко). Мне даже захотелось себе Mac и устройство на iOs, чтобы попробовать себя в разработке для совершенно новой платформы. Хотя, цены на яблочную продукцию поумерили мой пыл.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/543359675578123567/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2013/12/fmx-mobile-vpe4atlenija.html#comment-form' title='Комментарии: 8'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/543359675578123567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/543359675578123567'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2013/12/fmx-mobile-vpe4atlenija.html' title='Delphi XE5: впечатления от разработки под Android'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-819392926976789327</id><published>2013-12-16T21:50:00.001+02:00</published><updated>2013-12-16T21:50:50.411+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="know how"/><category scheme="http://www.blogger.com/atom/ns#" term="бла бла бла"/><category scheme="http://www.blogger.com/atom/ns#" term="организация проекта"/><title type='text'>Delphi. Как указать папку &amp;quot;по умолчанию&amp;quot; для новых проектов</title><content type='html'>&lt;p&gt;Надоело мне, что Delphi предлагает каждый новый проект сохранить в папке My documents. И задался я вопросом, а как бы эту папку изменить. Оказалось – очень просто. Настолько просто, что даже и рассказывать тут не о чем. Но я всё-таки расскажу так как я (почему-то) долгое время считал, что такой опции просто нет.&lt;/p&gt;  &lt;p&gt;Главное меню –&amp;gt; Tools –&amp;gt; Options –&amp;gt; Environment Options –&amp;gt; Default Project&lt;/p&gt;  &lt;p&gt;Или, с помощью IDE insight: &lt;strong&gt;Ctrl+.&lt;/strong&gt; ввести &lt;strong&gt;default project&lt;/strong&gt; + Enter&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY0-M181fhl31F6moYXqgUyZO7GjSDLHhT9QhFWmml3aQs0nN3uLkp0k4bN69LzvKUwZWNyJKSl2WA2yb4_5rnrGS8ybaibWfCMBah-yVfvbzkso7TE7sb_gw60Aw9RTJ7okvu-Y6sKno/s1600-h/image6.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ9nbmtP82VPnBr5LjAhub6DGg5NZWr02UetBbHZvHCVpOGZiGnuS3nBWuTCMiHsCtPX63yF1-C2OoFI9ymtLiVom2iCJmccnB7cpDL53TAInQDgINQioYxPhBZCWqJa0bUnLTTHHsSpE/?imgmax=800&quot; width=&quot;754&quot; height=&quot;623&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;В Delphi XE-XE5 эти настройки хранятся в реестре:&lt;/p&gt;  &lt;p&gt;HKEY_CURRENT_USER\Software\Embarcadero\BDS\12.0\Globals\DefaultProjectsDirectory &lt;/p&gt;  &lt;p&gt;Тип данных: REG_SZ&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/819392926976789327/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2013/12/delphi.html#comment-form' title='Комментарии: 6'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/819392926976789327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/819392926976789327'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2013/12/delphi.html' title='Delphi. Как указать папку &amp;quot;по умолчанию&amp;quot; для новых проектов'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ9nbmtP82VPnBr5LjAhub6DGg5NZWr02UetBbHZvHCVpOGZiGnuS3nBWuTCMiHsCtPX63yF1-C2OoFI9ymtLiVom2iCJmccnB7cpDL53TAInQDgINQioYxPhBZCWqJa0bUnLTTHHsSpE/s72-c?imgmax=800" height="72" width="72"/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-6338934878479708865</id><published>2013-12-13T01:17:00.001+02:00</published><updated>2013-12-13T01:17:18.536+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="Firemonkey"/><title type='text'>2. Пишем детскую программку под Android: основа</title><content type='html'>&lt;p&gt;Продолжаем писать &lt;a href=&quot;http://www.tdelphiblog.com/2013/10/1-android.html&quot;&gt;программку для детей под Android (требования мы сформулировали в первом посте)&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Начнём с того, что сделаем совсем простой проект – программку, которая умеет листать картинки при нажатии на кнопку. Картинки запакуем в ресурсы программы.&lt;/p&gt;  &lt;p&gt;Создаём новый проект: Firemonkey Mobile application –&amp;gt; Blank application&lt;/p&gt;  &lt;h4&gt;Разрешения&lt;/h4&gt;  &lt;p&gt;Отключим ненужные permissions. Так как по умолчанию включено слишком много всего.&lt;/p&gt;  &lt;p&gt;Project –&amp;gt; Options –&amp;gt; Uses permissions. &lt;font color=&quot;#a5a5a5&quot;&gt;(Или через Help Insight: Ctrl+. –&amp;gt; ввести Permission + Enter, но это как-то странно работает).&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt; Сверху выберем All configurations Android Platform, так как &lt;strong&gt;список Permissions доступен только для Android платформы&lt;/strong&gt;.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMieIp6dyFwhn2GYGrsADaZtz3omyMjnD6e_X9qgVs7X-25NLrs82KlRc-Dul-1jzHrHa2lOamtLGELb-Qwdwr7OH2VtMwm7cZE1OElC5CP3KTlJOyOL7c8nllJRW8DHxS-nIrZ6bXEeY/s1600-h/image9.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRmbBF2Saj2aoPkavkrBW2UZzCZYjeW0DjnnggEgyfkdME3WKwf9pT-8wZWcjoTtG0ZwQqp4Nk_4o2Fm7gW5rbUgyi3v1FRg-Ssm8tzVadkDJHNPdbWsvYhlVznyS66OThjkX0QXoRh8A/?imgmax=800&quot; width=&quot;759&quot; height=&quot;607&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;a name=&#39;more&#39;&gt;&lt;/a&gt;  &lt;p&gt;Как вы видите на скриншоте жирным false отмечены те настройки, у которых значение отличается от значения по умолчанию (они были включены, и мы их отключили).&lt;/p&gt;  &lt;p&gt;Из всех разрешений включим только:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Read Phone State – нужен для получения уникального идентификатора устройства &lt;/li&gt;    &lt;li&gt;Read External Storage – для чтения SdCard &lt;/li&gt;    &lt;li&gt;Write External Storage – для записи на SdCard &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Кстати, пока что нам даже эти разрешения не нужны, но могут пригодиться в дальнейшем.&lt;/p&gt;  &lt;p&gt;Сохраним проект (Save all) и &lt;a href=&quot;https://github.com/tdelphi/dog-said-meow/commit/103e393deaf7732a4ac3b9e924c5ddd31ffc5609&quot; target=&quot;_blank&quot;&gt;зафиксируем изменения в системе контроля версий&lt;/a&gt;.&lt;/p&gt;  &lt;h4&gt;Добавим ресурсы&lt;/h4&gt;  &lt;p&gt;В папке с проектом сделаем новую папку resources. Здесь мы будем хранить rc файлы. В папке resources создадим подпапку images – в ней будем хранить картинки.&lt;/p&gt;  &lt;p&gt;Картинки возьмём с сайта &lt;a href=&quot;http://openclipart.org/share&quot; target=&quot;_blank&quot;&gt;OpenClipArt.org – там лицензия Public Domain&lt;/a&gt;. &lt;font color=&quot;#a5a5a5&quot;&gt;Так как проект у нас учебный и открытый, то поверим им на слово и не будем искать настоящих авторов. (а вот для коммерческой разработки, картинки лучше всего покупать в каком-нибудь проверенном месте).&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;Для начала возьмём с этого сайта 4 картинки&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;lemmling_Cartoon_cat.png &lt;/li&gt;    &lt;li&gt;lemmling_Cartoon_goat.png &lt;/li&gt;    &lt;li&gt;lemmling_Cartoon_owl.png &lt;/li&gt;    &lt;li&gt;lemmling_Cartoon_sheep.png &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Добавим в проект новый .RC файл: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Ctrl+. для активации IDE insight &lt;/li&gt;    &lt;li&gt;ввести Text file + Enter –&amp;gt; появи &lt;/li&gt;    &lt;li&gt;в открывшемся диалоге: Alt+a, ввести .rc и нажать Enter &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Если хотите можете добавлять эти файлы и через диалог Resources and Images.&lt;/p&gt;  &lt;p&gt;Добавим наши картинки в animals.rc &lt;/p&gt;  &lt;pre class=&quot;brush: delphi;&quot;&gt;MyImage_1 RCDATA &amp;quot;resources\\images\\lemmling_Cartoon_cat.png&amp;quot;
MyImage_2 RCDATA &amp;quot;resources\\images\\lemmling_Cartoon_goat.png&amp;quot;
MyImage_3 RCDATA &amp;quot;resources\\images\\lemmling_Cartoon_owl.png&amp;quot;
MyImage_4 RCDATA &amp;quot;resources\\images\\lemmling_Cartoon_sheep.png&amp;quot;&lt;/pre&gt;

&lt;p&gt;Теперь &lt;a title=&quot;Предыдущий пост &amp;quot;Добавление ресурсов в программу&amp;quot;&quot; href=&quot;http://www.tdelphiblog.com/2013/11/blog-post.html&quot; target=&quot;_blank&quot;&gt;при компиляции проекта файл с ресурсами animals.rc будет автоматически компилироваться&lt;/a&gt; в animals.res файл.&lt;/p&gt;

&lt;h4&gt;Код&lt;/h4&gt;

&lt;p&gt;Для загрузки картинок из ресурсов создадим простенький класс (TImageLoader) .&lt;/p&gt;

&lt;pre class=&quot;brush: delphi;&quot;&gt;type
  TImageLoader = class
  strict private
  const
    cMinPictureId = 1;
    cMaxPictureId = 4;
  var
    FCurrentImgIndex: Integer;
  public
    procedure LoadPic(const aBitmap: TBitmap);
    procedure SetNextPic;
    procedure SetPrevPic;
  end;&lt;/pre&gt;

&lt;p&gt;Реализацию можно посмотреть &lt;a href=&quot;https://github.com/tdelphi/dog-said-meow/blob/master/dog_said_meow.uImageLoader.pas&quot; target=&quot;_blank&quot;&gt;на github-е&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;GUI&lt;/h4&gt;

&lt;p&gt;Для начала, чтобы упростить сделаем всё на одной форме.&lt;/p&gt;

&lt;p&gt;На форму бросаем панель с Align = alClient (так потом будет проще если что добавить другой контрол с другим Align-ом). &lt;/p&gt;

&lt;p&gt;На панель кидаем 2 кнопки (TSpeedButton): &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;одну назовём btnPrev с Align alLeft &lt;/li&gt;

  &lt;li&gt;другую кнопку назовём btnNext и установим выравнивание по правому краю (Align alRight) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Кстати, мне так и не удалось добиться того, чтобы &lt;strong&gt;в дизайнере&lt;/strong&gt; SpeedButton кнопки растянулись на всю высоту панели, но в runtime они растягиваются как положено.&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#a5a5a5&quot;&gt;Интересно, почему все tutorial-ы для мобильной разработки рекомендуют использовать именно TSpeedButton вместо TButton, который умеет не только всё то же самое, что и TSpeedButton но больше. Я так толком и не понял. Есть идеи?&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;В обработчиках нажатия кнопок будут вызываться методы TImageLoader SetNextPic, SetPrevPic и LoadPic соответственно.&lt;/p&gt;

&lt;h4&gt;Код&lt;/h4&gt;

&lt;p&gt;Весь код доступен на github-е: релиз &lt;a href=&quot;https://github.com/tdelphi/dog-said-meow/releases/tag/post_2&quot; target=&quot;_blank&quot;&gt;post_2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Страничка проекта: &lt;a href=&quot;https://github.com/tdelphi/dog-said-meow&quot;&gt;https://github.com/tdelphi/dog-said-meow&lt;/a&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/6338934878479708865/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2013/12/2-android.html#comment-form' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/6338934878479708865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/6338934878479708865'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2013/12/2-android.html' title='2. Пишем детскую программку под Android: основа'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRmbBF2Saj2aoPkavkrBW2UZzCZYjeW0DjnnggEgyfkdME3WKwf9pT-8wZWcjoTtG0ZwQqp4Nk_4o2Fm7gW5rbUgyi3v1FRg-Ssm8tzVadkDJHNPdbWsvYhlVznyS66OThjkX0QXoRh8A/s72-c?imgmax=800" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-602799294940104915</id><published>2013-11-23T08:18:00.001+02:00</published><updated>2013-11-24T01:16:31.365+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="know how"/><title type='text'>Добавление ресурсов в программу</title><content type='html'>&lt;p&gt;В этой публикации я побуду &lt;a href=&quot;http://lurkmore.to/%D0%9A%D0%B0%D0%BF%D0%B8%D1%82%D0%B0%D0%BD_%D0%9E%D1%87%D0%B5%D0%B2%D0%B8%D0%B4%D0%BD%D0%BE%D1%81%D1%82%D1%8C&quot; target=&quot;_blank&quot;&gt;Капитаном О&lt;/a&gt;чевидность и расскажу о паре способах добавления ресурсов в программу.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Определение: Ресурсы&lt;/b&gt; — данные, встроенные в &lt;a href=&quot;http://ru.wikipedia.org/wiki/.EXE&quot;&gt;EXE&lt;/a&gt;, &lt;a href=&quot;http://ru.wikipedia.org/wiki/DLL&quot;&gt;DLL&lt;/a&gt;, &lt;a href=&quot;http://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D0%BD%D0%B5%D0%BB%D1%8C_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_(Windows)&quot;&gt;CPL&lt;/a&gt; и (начиная с Windows Vista) &lt;a href=&quot;http://ru.wikipedia.org/wiki/MUI_(%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F)&quot;&gt;MUI&lt;/a&gt;-файлы. Доступ к этим данным можно получить через функции &lt;a href=&quot;http://ru.wikipedia.org/wiki/Windows_API&quot;&gt;Windows API&lt;/a&gt;. (из Википедии).&lt;/p&gt;  &lt;p&gt;В Delphi XE5 аналогичный механизм используется и для хранения ресурсов в Android приложениях. Насчёт iOS приложений я не проверял, но полагаю, что должно работать и там.&lt;/p&gt;  &lt;p&gt;Вообще, ресурсы в Delphi – это фундамент, на котором строится вся программа. Именно в ресурсы пакуются все ваши DFM файлы (видели же строку “&lt;i&gt;{$R *.DFM}&lt;/i&gt;” в .pas файлах форм? &lt;a title=&quot;Директива компилятора {$RESOURCE filename}&quot; href=&quot;http://docwiki.embarcadero.com/RADStudio/XE5/en/Resource_file_(Delphi)&quot; target=&quot;_blank&quot;&gt;это оно самое&lt;/a&gt;), иконки, курсоры, и строки (resourcestring). Именно благодаря ресурсам работает &lt;a title=&quot;Обзор способов локализации - подробная статья Александра Алексеева.&quot; href=&quot;http://www.gunsmoker.ru/2010/06/delphi-ite-integrated-translation.html&quot; target=&quot;_blank&quot;&gt;локализация программ с помощью Translation Manager&lt;/a&gt;. Всё это происходит автоматически.&lt;/p&gt;  &lt;p&gt;Также, именно ресурсы рекомендуется использовать для встраивания в программу дополнительных файлов - картинок, аудиофайлов, текстов.&lt;/p&gt;  &lt;p&gt;Для чтения ресурсов можно использовать класс &lt;a href=&quot;http://docwiki.embarcadero.com/Libraries/XE5/en/System.Classes.TResourceStream&quot; target=&quot;_blank&quot;&gt;TResourceStream&lt;/a&gt;. А о том, как добавить ресурсы в программу, мы и поговорим.&lt;/p&gt;  &lt;p&gt;Начиная с Delphi 2009 в IDE появился диалог, позволяющий добавить ресурсы в проект.&lt;/p&gt;  &lt;p&gt;&lt;img title=&quot;Диалог Resources в Delphi XE5&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;Диалог Resources в Delphi XE5&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuUEJAq_fId8dY44c7ewanwb8_dsISpLpvQea7SrpjDKalIssQeyLgtz0y51S1BkuSwFl_nKBD9angd_u9LaxX84Y2C_QrzM8Jn3OsywsIAzwMxa95mCyWEo4OTxhGS45jIsUDQrFsWiw/?imgmax=800&quot; width=&quot;534&quot; height=&quot;246&quot; /&gt;&lt;/p&gt;  &lt;p&gt;Этот диалог даёт возможность включить в проект сразу несколько файлов (проверял в XE5).&lt;/p&gt;  &lt;p&gt;При сборке проекта, эти файлы компилируются в .res файл. А при линковке (&lt;a href=&quot;http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%BE%D0%B2%D1%89%D0%B8%D0%BA&quot; target=&quot;_blank&quot;&gt;компоновке&lt;/a&gt;), встраиваются в программу.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Но как же программисты жили раньше? Как добавляли в программы картинки, звуки и большие текстовые файлы?&lt;/p&gt;  &lt;a name=&#39;more&#39;&gt;&lt;/a&gt;  &lt;p&gt;Я уверен, что вы знаете ответ на этот вопрос. А если даже и нет, то способны найти ответ меньше чем за минуту.&lt;/p&gt;  &lt;p&gt;Ответ скорее всего будет &lt;a href=&quot;http://delphi.about.com/od/objectpascalide/a/embed_resources.htm&quot; target=&quot;_blank&quot;&gt;звучать так&lt;/a&gt;:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Создайте текстовый файл с расширением .RC &lt;/li&gt;    &lt;li&gt;Добавьте туда список ресурсов в формате: resource_name RCDATA “filename” &lt;/li&gt;    &lt;li&gt;Запустите компилятор ресурсов: brcc32 ваш_файл.rc &lt;/li&gt;    &lt;li&gt;Добавьте в программу строку: {$R ваш_файл.res} &lt;/li&gt;    &lt;li&gt;Пересоберите программу &lt;/li&gt;    &lt;li&gt;Если вам понадобится изменить ваш .rc файл, повторите шаги 2-5. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Но, чтобы не собирать этот файл вручную, можно добавить RC файл прямо в проект.&lt;/p&gt;  &lt;p&gt;В очень старых версиях Delphi (6,7) файл с ресурсами (RC) было проще создать в блокноте, а потом добавить в проект (Add to project). &lt;/p&gt;  &lt;p&gt;В современных версиях Delphi, отлично работает способ создания прямо из IDE:&lt;/p&gt;  &lt;p&gt;File –&amp;gt; New –&amp;gt; Text file –&amp;gt; .rc Resource file&lt;/p&gt;  &lt;p&gt;Сохраним созданный файл как animals.rc&lt;/p&gt;  &lt;p&gt;В результате в наш .dpr файл сверху добавится строка &lt;/p&gt;  &lt;p&gt;{$R &#39;animals.res&#39; &#39;animals\animals.rc&#39;}    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;И теперь, при каждой компиляции, пересобираться и файл animals.rc и в программе всегда будет актуальная версия.&lt;/p&gt;  &lt;p&gt;С уважением, ваш Капитан Очевидность.&lt;/p&gt;  &lt;h4&gt;Ссылки по теме&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://ru-delphi.livejournal.com/266721.html&quot; target=&quot;_blank&quot;&gt;Delphi Application Resources в ru_delphi&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://forum.sources.ru/index.php?showtopic=296997&quot; target=&quot;_blank&quot;&gt;Версия программы из Subversion, установка versioninfo через командную строку, с помощью TortoiseSVN&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  </content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/602799294940104915/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2013/11/blog-post.html#comment-form' title='Комментарии: 7'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/602799294940104915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/602799294940104915'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2013/11/blog-post.html' title='Добавление ресурсов в программу'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuUEJAq_fId8dY44c7ewanwb8_dsISpLpvQea7SrpjDKalIssQeyLgtz0y51S1BkuSwFl_nKBD9angd_u9LaxX84Y2C_QrzM8Jn3OsywsIAzwMxa95mCyWEo4OTxhGS45jIsUDQrFsWiw/s72-c?imgmax=800" height="72" width="72"/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-8649449934126781566</id><published>2013-10-26T07:57:00.001+03:00</published><updated>2013-10-26T07:59:29.478+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="бла бла бла"/><title type='text'>1. Пишем детскую программку под Android: план</title><content type='html'>&lt;p&gt;&lt;a href=&quot;http://www.embarcadero.com/ru/products/delphi/android-app-development&quot; target=&quot;_blank&quot;&gt;Delphi для Android&lt;/a&gt;. О сколько радостных предвкушений вызывает у меня сочетание этих слов. Я давно хотел сделать что-нибудь под Android. Для начала что-нибудь простенькое, но свое.&lt;/p&gt;  &lt;p&gt;Дочке сейчас полтора года, и ей очень нравятся телефоны, компьютеры и планшеты. Любая чёрненькая коробочка с кнопочками и лампочками влечёт её почище магнита. Но особое предпочтение доча отдаёт устройствам с тачскрином. “Папа, дай мне пожалуйста свой телефон, я хочу с ним поиграть, а заодно я раскидаю твои иконки так, что не сможешь потом ничего найти, поменяю звонок, переставлю время, запущу тебе кучу разных программ и позвоню парочке случайных знакомых”, хочет она сказать, но произносит только “Алё-алё! На-на-на!”. Ключевое для дочки, конечно, поиграть. Больше всего она любит программки с картинками, которые издают звуки. &lt;/p&gt;  &lt;p&gt;Её требования к играм очень простые:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Там обязательно должна быть коровка которая говорит &lt;em&gt;му-му&lt;/em&gt;, собачка которая говорит &lt;em&gt;гав-гав&lt;/em&gt;, кошечка говорящая &lt;em&gt;мяу-мяу&lt;/em&gt;, уточка с &lt;em&gt;кря-кря&lt;/em&gt; и поезд, который говорит &lt;em&gt;туу-туу&lt;/em&gt;.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;У меня требований чуть больше:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;там не должно быть змей, говорящих ссссс, страшно рычащих тигров, обезьянок, и других тварей, которые не водятся в нашей местности и в детских книжках&lt;/li&gt;    &lt;li&gt;программка должна быть проста в использовании: &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;картинки должны быть большими&lt;/li&gt;      &lt;li&gt;программа должна чётко понимать, что прикосновение к экрану на 3 сантиметров в стороне от картинки это на самом деле прикосновение к картинке&lt;/li&gt;      &lt;li&gt;а если на экран нажали ладошкой, то не это никакой не мультитач, а обычное нажатие, и если на экране есть несколько животных издающих звуки, то совершенно излишне заставлять всех животных вопить благим матом, а то родители пугаются&lt;/li&gt;      &lt;li&gt;крайне желательно, чтобы программка умела блокировать нажатия кнопок home, back и menu (в некоторых детских программах это кстати реализовано). (сенсорные кнопки на телефонах/планшетах – это зло)&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Никакой рекламы во время игры, разумеется&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Таких программ очень много в Google Play Market-e. Но у всех у них есть какой-нибудь &lt;a href=&quot;http://lurkmore.to/%D0%A4%D0%B0%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BD%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D0%BA&quot; target=&quot;_blank&quot;&gt;фатальный недостаток&lt;/a&gt;.&lt;/p&gt;  &lt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;  &lt;h5&gt;Вопрос:&lt;/h5&gt;  &lt;p&gt;Насколько просто написать такую программку? А на Delphi XE5? =)&lt;/p&gt;  &lt;p&gt;Давайте проверим!&lt;/p&gt;  &lt;h5&gt;Дано:&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;Программист – пара (7 точнее) лет программирования на Delphi используя только VCL. Опыт работы с Firemonkey практически отсутствует. Опыт программирования для Android – отсутствует.&lt;/li&gt;    &lt;li&gt;Delphi XE5&lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Получить:&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;программку для Android для просмотра картинок с плавной анимацией&lt;/li&gt;    &lt;li&gt;при нажатии на картинку должен издаваться звук&lt;/li&gt;    &lt;li&gt;программа должна уметь обрабатывать нажатия аппаратных кнопок&lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;План:&lt;/h5&gt;  &lt;ol&gt;   &lt;li&gt;Сделать показ картинок&lt;/li&gt;    &lt;li&gt;Сделать проигрывание звуков&lt;/li&gt;    &lt;li&gt;Попытаться заблокировать кнопки Home, Back, Menu&lt;/li&gt;    &lt;li&gt;Найти подходящие картинки (лучше всего серия в одном стиле) и звуки с какой-нибудь разрешающей лицензией (Creative Commons или &lt;a href=&quot;http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5_%D0%B4%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D0%B5&quot; target=&quot;_blank&quot;&gt;Public domain&lt;/a&gt;) (&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;пришлите пожалуйста ссылки, если кто знает хорошие ресурсы&lt;/strong&gt;&lt;/font&gt;).&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Самое сложное во всём этом – 4й пункт.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/8649449934126781566/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2013/10/1-android.html#comment-form' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/8649449934126781566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/8649449934126781566'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2013/10/1-android.html' title='1. Пишем детскую программку под Android: план'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-7129532960016149822</id><published>2013-10-20T06:31:00.001+03:00</published><updated>2013-10-20T06:48:06.360+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Blogroll"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="Firemonkey"/><category scheme="http://www.blogger.com/atom/ns#" term="know how"/><category scheme="http://www.blogger.com/atom/ns#" term="инструменты"/><title type='text'>Легкий способ проверить Android устройство на совместимость с Delphi XE5.</title><content type='html'>&lt;p&gt;Как узнать будет ли работать программа сделанная в Delphi XE5 на Android устройстве.&lt;/p&gt;  &lt;p&gt;Начну сразу с простейшего способа. Официальная спецификация – ниже.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;#unofficial&quot;&gt;Неофициальные способы&lt;/a&gt; &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href=&quot;#easy&quot;&gt;Легкий способ проверить своё устройство&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a href=&quot;#118&quot;&gt;Список из 118 проверенных устройств&lt;/a&gt; &lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;a href=&quot;#official&quot;&gt;Официальные способы&lt;/a&gt; &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href=&quot;#spec&quot;&gt;Соответствие спецификации&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a href=&quot;#list&quot;&gt;Список проверенных устройств от Embarcadero&lt;/a&gt; &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;img title=&quot;All-the-Myriad-Androids-Animoca&quot; style=&quot;border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline&quot; border=&quot;0&quot; alt=&quot;All-the-Myriad-Androids-Animoca&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq2XrpdBgJedhpNOJG-BOmAG4s_Nf86uUQarZ5o3tTFGOo-DKR_Iizomi51rjrNl8wbu818nf8AuFs3yBNQwtUd76NHMajoGd37XBEvSEr-dQ_NaKKhTUHHfATAyedhnNFgMrOdPoe5Pk/?imgmax=800&quot; width=&quot;484&quot; height=&quot;323&quot; /&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;a id=&quot;unofficial&quot;&gt;Неофициальные способы&lt;/a&gt;&lt;/h3&gt;  &lt;h4&gt;&lt;a id=&quot;easy&quot;&gt;Легкий способ проверить своё устройство&lt;/a&gt;&lt;/h4&gt;  &lt;ol&gt;   &lt;li&gt;Надо установить на телефон маленькую программку &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.ss.syscheck&quot; target=&quot;_blank&quot;&gt;SysCheck от Christopher Moeller&lt;/a&gt; (не требует никаких прав). &lt;/li&gt;    &lt;li&gt;Запустить. &lt;/li&gt;    &lt;li&gt;И посмотреть на первые 3 строчки отчёта. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Там будет указана версия ARM (нужна v7), версия OS (2.3.3-2.3.7 и 4.0.3-4.3)&amp;#160; и указано поддерживается ли NEON (должно быть yes).&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://delphi.org/2013/09/syscheck-for-xe5-compatibility/&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Источник&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;a id=&quot;118&quot;&gt;Список из 118 проверенных устройств&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Jim McKeeth опубликовал &lt;a href=&quot;https://docs.google.com/spreadsheet/ccc?key=0AoEN2CEsVvJ0dGhVaWJEdWRJTVYzZ1NKT2NoQkF4N3c&amp;amp;usp=sharing&quot; target=&quot;_blank&quot;&gt;список из 118 протестированных устройств&lt;/a&gt; (&lt;a href=&quot;https://docs.google.com/spreadsheet/ccc?key=0AtyJxWm1ZO7bdEszaDFkbGtNdnJ4by1ZVFh4eFF1cmc&amp;amp;usp=sharing&quot; target=&quot;_blank&quot;&gt;зеркало&lt;/a&gt;, &lt;a href=&quot;https://docs.google.com/spreadsheet/pub?key=0AtyJxWm1ZO7bdEszaDFkbGtNdnJ4by1ZVFh4eFF1cmc&amp;amp;output=html&quot; target=&quot;_blank&quot;&gt;html версия&lt;/a&gt;). Список получен с помощью сервиса &lt;a href=&quot;https://www.apkudo.com/&quot; target=&quot;_blank&quot;&gt;Apkudo&lt;/a&gt;. Этот сервис позволяет загрузить свой APK, и проверить его работу на большом количестве разных устройств. &lt;/p&gt;  &lt;p&gt;Для проверки Jim использовал простейшую программку типа Hello World. &lt;/p&gt;  &lt;p&gt;Из 118 устройств APK установился только на 108 (на остальных был либо тайм-аут либо не хватило свободного места). Из 108 устройств, программка не запустилась только на 3.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Проверено устройств: 118 &lt;/li&gt;    &lt;li&gt;Не установилось на: 10 &lt;/li&gt;    &lt;li&gt;Зависло (Application not responding) на: 3 &lt;/li&gt;    &lt;li&gt;Успешно запустилось на: 105 &lt;/li&gt;    &lt;li&gt;Процент успеха: 89% &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href=&quot;http://delphi.org/2013/09/delphi-xe5-android-device-compatibility/&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Источник&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;&lt;a id=&quot;official&quot;&gt;Официальные способы&lt;/a&gt;&lt;/h3&gt;  &lt;h4&gt;&lt;a id=&quot;spec&quot;&gt;Соответствие спецификации&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Поддерживаются устройства архитектуры ARMv7 и ОС:&lt;/p&gt;  &lt;table cellpadding=&quot;0&quot; border=&quot;1&quot;&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;&lt;b&gt;Название ОС Android&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p&gt;&lt;b&gt;Версия ОС Android&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p&gt;&lt;b&gt;API Levels&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;&lt;b&gt;Jelly Bean&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p&gt;Android 4.1.x, 4.2.x, 4.3.x&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p&gt;API Levels 16, 17, 18&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;&lt;b&gt;Ice Cream Sandwich&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p&gt;Android 4.0.3 and 4.0.4&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p&gt;API Level 15&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;&lt;b&gt;Gingerbread&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p&gt;Android 2.3.3 - 2.3.7&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p&gt;API Level 10&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Не поддерживается:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Honeycomb (Android 3.x) &lt;/li&gt;    &lt;li&gt;Эмулятор Gingerbread &lt;/li&gt;    &lt;li&gt;Устройства на процессоре Tegra 2 (поддержка &lt;a href=&quot;http://www.arm.com/products/processors/technologies/neon.php&quot; target=&quot;_blank&quot;&gt;NEON&lt;/a&gt; обязательна) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/XE5/en/Android_Devices_Supported_for_Application_Development&quot; target=&quot;_blank&quot;&gt;Ссылка на официальную документацию&lt;/a&gt;.&lt;/p&gt;  &lt;h4&gt;&lt;a id=&quot;list&quot;&gt;Список проверенных устройств от Embarcadero&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Список можно найти в официальной документации от Эмбаркадэро.&lt;/p&gt;  &lt;p&gt;Сюда копировать не буду. Если интересно – сходите по ссылке.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/XE5/en/Android_Devices_Supported_for_Application_Development#Results_of_Our_Android_Device_Testing&quot;&gt;http://docwiki.embarcadero.com/RADStudio/XE5/en/Android_Devices_Supported_for_Application_Development#Results_of_Our_Android_Device_Testing&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;p.s. Забавно, но в Google Play уже появились и платные программки для проверки устройств на совместимость с Delphi ХЕ5. &lt;strike&gt;Стервятники, такие стервятники.&lt;/strike&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/7129532960016149822/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2013/10/sovmestimostjandroididelphi.html#comment-form' title='Комментарии: 6'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/7129532960016149822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/7129532960016149822'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2013/10/sovmestimostjandroididelphi.html' title='Легкий способ проверить Android устройство на совместимость с Delphi XE5.'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq2XrpdBgJedhpNOJG-BOmAG4s_Nf86uUQarZ5o3tTFGOo-DKR_Iizomi51rjrNl8wbu818nf8AuFs3yBNQwtUd76NHMajoGd37XBEvSEr-dQ_NaKKhTUHHfATAyedhnNFgMrOdPoe5Pk/s72-c?imgmax=800" height="72" width="72"/><thr:total>6</thr:total><georss:featurename>Riga, Latvia</georss:featurename><georss:point>56.9496487 24.10518639999998</georss:point><georss:box>56.672694199999995 23.459739399999979 57.2266032 24.75063339999998</georss:box></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-5003416929679023244</id><published>2013-10-11T09:03:00.001+03:00</published><updated>2013-10-11T09:07:57.725+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogroll"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="бла бла бла"/><title type='text'>Ссылка: Почему веб-приложения на мобильных платформах работают медленно</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Delphi XE5 дает возможность создавать нативные приложения и для десктопа и мобильных платформ (пока что Android и iOs). Единый код, UI, все дела. &lt;/p&gt;  &lt;p&gt;Но зачем мне для этого покупать Delphi, воскликнет искушенный читатель? Я возьму какой-нибудь бесплатный мобильный Javascript фреймворк (&lt;a href=&quot;http://cordova.apache.org/&quot; target=&quot;_blank&quot;&gt;Cordova&lt;/a&gt;, PhoneGap и другие) и сделаю то же самое. Не спеши, читатель, отвечу ему я. Ведь Javascript может оказаться слиииииишком медленным. &lt;/p&gt;  &lt;p&gt;И вот одна статья на эту тему. &lt;strike&gt;Только сегодня!&lt;/strike&gt;&amp;#160;&lt;strike&gt;Только на нашей арене!&lt;/strike&gt; &lt;strike&gt;Javascript против нативного кода! Сравнение производительности и предсказании будущего!&lt;/strike&gt; Статья опубликована на Хабре 8 августа 2013.&lt;/p&gt;  &lt;h5&gt;&lt;a href=&quot;http://habrahabr.ru/post/188580/&quot; target=&quot;_blank&quot;&gt;Почему веб-приложения на мобильных платформах работают медленно&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Статья по ссылке реально большая. И я позволю себе скопировать сюда выводы.&lt;/p&gt;  &lt;p&gt;Вот что следует помнить:   &lt;br /&gt;* в 2013 году JavaScript является слишком медленным, чтобы его можно было использовать на мобильных устройствах для создания приложений типа обработки фотографий и пр.:    &lt;br /&gt;— он в 5 раз медленнее нативного кода;    &lt;br /&gt;— он сравним с IE8;    &lt;br /&gt;— он медленнее, чем x86 C/C++, примерно в 50 раз;    &lt;br /&gt;— он медленнее, чем серверные Java/Ruby/Python/C# примерно в 10 раз, если программа выделяет не больше 35 Мб памяти и резко замедляется при дальнейшем выделении памяти;    &lt;br /&gt;* Наиболее реальный способ его разогнать — это увеличить производительность процессора до уровня десктопа. Возможно это и произойдет, но не в ближайшем будущем;    &lt;br /&gt;* Сам язык последнее время нисколько не ускорился и его разработчики утверждают, что при сохранении языка и API, производительность никогда не догонит нативный код;    &lt;br /&gt;* Сборщик мусора сильно тормозит при ограниченном количестве доступной памяти. Он ведет себя сильно хуже, чем на декстопах или серверах;    &lt;br /&gt;* Каждый мобильный разработчик, независимо от того — использует он сборку мусора или нет — тщательно продумывает работу с памятью;    &lt;br /&gt;* JavaScript в настоящий момент фундаментально против того, чтобы даже попробовать оценить расход памяти на мобильных устройствах;    &lt;br /&gt;* Даже если они захотят дать эту возможность, опыт подсказывает, что сделать это будет очень трудно;    &lt;br /&gt;* Есть надежда на asm.js, но он, скорее, напоминает C\C++, чем что-то динамическое типа JS.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/5003416929679023244/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2013/10/blog-post.html#comment-form' title='Комментарии: 7'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/5003416929679023244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/5003416929679023244'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2013/10/blog-post.html' title='Ссылка: Почему веб-приложения на мобильных платформах работают медленно'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-782843285755801133</id><published>2013-10-03T00:33:00.001+03:00</published><updated>2013-10-03T00:36:09.963+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogroll"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="обзор"/><title type='text'>Delphi XE5 с поддержкой Андроида. Первые впечатления.</title><content type='html'>&lt;p&gt;&lt;img title=&quot;Delphi XE5 art&quot; style=&quot;border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline&quot; border=&quot;0&quot; alt=&quot;Delphi XE5 art&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPlu9POBxDV5XcdcB8_0xys8jnKudb5R70nXxUcxxBKt3y-y7DUoIjtG7IiOE-5KuhltIliqogmfuTySTvnmIQfYMAiZJILPaKpHs0pQq117AkjaGPvtX00DM-NfaGRZ3L3CmV3homecU/?imgmax=800&quot; width=&quot;480&quot; height=&quot;270&quot; /&gt; &lt;/p&gt;  &lt;p&gt;Не то, чтобы я очень ждал выхода &lt;a href=&quot;http://www.embarcadero.com/ru/products/delphi&quot; target=&quot;_blank&quot;&gt;Delphi XE5&lt;/a&gt;. Поначалу. На самом деле я даже не следил за новостями. Но за пару недель до релиза (как это выяснилось позднее) ситуация поменялась. Только-только стали появляться первые обзоры от бета тестеров XE5. А я решил проверить будет ли мой &lt;a href=&quot;http://www.lazyproject.info/&quot; target=&quot;_blank&quot;&gt;Lazy Delphi Builder&lt;/a&gt; работать с компиляторами от XE5. &lt;/p&gt;  &lt;p&gt;Зарегистрировался на участие в бета тесте, стал следить за новостями и как-то потихоньку втянулся в активное ожидание, с ежедневной проверкой &lt;a href=&quot;http://www.delphifeeds.ru/&quot; target=&quot;_blank&quot;&gt;DelphiFeeds&lt;/a&gt; на тему новостей. Я как-то даже не верил, что у Embarcadero получится. Уж очень амбициозная цель была поставлена. Но у них получилось. Молодцы!&lt;/p&gt;  &lt;p&gt;Доступа к бете я тогда так и не дождался – через неделю вышла полная версия. &lt;/p&gt;  &lt;h5&gt;Попытка первая.&lt;/h5&gt;  &lt;p&gt;Очень интересно, заработает ли у меня. Будет ли всё действительно просто – или придётся сначала потанцевать с бубном.&lt;/p&gt;  &lt;p&gt;Trial установлен. В наличии имеется пара часов свободного времени и старенький Samsung Galaxy Mini, который как выяснилось позже, просто не поддерживается.&lt;/p&gt;  &lt;p&gt;Времени читать документацию нет. Пара часов пролетает в лихорадочной доустановке Android SDK, NDK, настройке IDE и попытках запустить какую-нибудь демку на телефоне (Oppa-Delphi-Style!). Сначала получил ошибку о несовпадающей версии API. Потом выяснилось, что в телефоне не хватает места. Пара часов пролетела как пара минут оставив за собой дымный след несбывшихся надежд.&lt;/p&gt;  &lt;h5&gt;Попытка вторая.&lt;/h5&gt;  &lt;p&gt;Ко второй попытке я подошел основательнее. Скачал и установил наисвежаиший Android SDK. Взял другой телефонный аппарат, которые точно поддерживается Delphi XE5. На этот раз экспериментировал с &lt;a href=&quot;http://4pda.ru/2013/08/14/111237/&quot;&gt;Gigabyte GSmart Aku A1&lt;/a&gt;. Телефон тоже бюджетный но вышедший в августе 2013. &lt;/p&gt;  &lt;p&gt;И засел за эксперименты. &lt;/p&gt;  &lt;p&gt;В этот раз всё прошло как по маслу. Единственная проблемка с которой пришлось столкнуться связана с телефоном. Поиск USB драйвера для телефона превратился в квест. Windows 7 его сам не нашёл, стандартный USB драйвер из ASDK тоже не покатил. Нашёлся же драйвер &amp;quot;в самом неожиданном месте&amp;quot; - &lt;a href=&quot;http://www.gigabytecm.com/en/goodscontent.php?id=10&amp;amp;type=2&quot;&gt;на сайте производителя&lt;/a&gt; (но тоже не сразу - &lt;a href=&quot;http://4pda.ru/forum/index.php?showtopic=491775&quot;&gt;спасибо форуму 4pda за наводку на правильный линк&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;p.s. Собирал и устанавливал в телефон из IDE. Теперь интересно, можно ли это сделать из командной строки. (Lazy Delphi Builder тут бессилен, так как умеет только компилировать)   &lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/782843285755801133/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2013/10/delphi-xe5.html#comment-form' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/782843285755801133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/782843285755801133'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2013/10/delphi-xe5.html' title='Delphi XE5 с поддержкой Андроида. Первые впечатления.'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPlu9POBxDV5XcdcB8_0xys8jnKudb5R70nXxUcxxBKt3y-y7DUoIjtG7IiOE-5KuhltIliqogmfuTySTvnmIQfYMAiZJILPaKpHs0pQq117AkjaGPvtX00DM-NfaGRZ3L3CmV3homecU/s72-c?imgmax=800" height="72" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-4146185022891202982</id><published>2013-09-15T04:39:00.001+03:00</published><updated>2013-09-16T02:00:07.491+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogroll"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="Lazy Delphi Builder"/><category scheme="http://www.blogger.com/atom/ns#" term="инструменты"/><title type='text'>Lazy Delphi Builder 1.9.7.251. 15-сен-2013 для XE5 и XE6</title><content type='html'>&lt;p&gt;Для тех, кто не в курсе: Lazy Delphi Builder даёт возможность пересобрать всё что надо используя только .pas файлы. И поддерживать порядок, складывая все dcu-шки в &lt;a href=&quot;/2008/08/delphi.html&quot;&gt;одно определённое место&lt;/a&gt;. Лицензия - халява.&lt;/p&gt;  &lt;p&gt;Сценарии использования:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Пересобрать все свои компоненты/библиотеки из исходников с нуля (актуально в случае апгрейда, чистки) &lt;/li&gt;    &lt;li&gt;Сборка нового релиза (всё собирается с нуля из pas-файлов) &lt;/li&gt;    &lt;li&gt;Установка новых больших библиотек чтобы поиграться (или пересборка старых с новыми директивами) &lt;/li&gt; &lt;/ol&gt;  &lt;h4&gt;История изменений&lt;/h4&gt;  &lt;ol&gt;   &lt;li&gt;Новое: теперь можно выбирать платформу для компиляции. Пока поддерживаются &lt;strong&gt;Win32&lt;/strong&gt;, &lt;strong&gt;Win64 &lt;/strong&gt;и &lt;strong&gt;OSX&lt;/strong&gt;. Это сделано через замену вызова dcc32 на вызов dcc64 или dccOSX. Для использования других платформ, можно указывать нужный dcc вручную (см. пункт 9 в &lt;a href=&quot;/2013/04/lazy-delphi-builder-186240-28-04-2013.html&quot;&gt;release notes к версии 1.8.6.240&lt;/a&gt;)       &lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPrPX0l7pTNCAzoMuQBMb4bVXMVTGt9ZoVIdJpCBpcrpet1mqPpjL4f0GcQ-zMCbVm8WKIWclWTfy5vJ_RLYozD5jRZLeprdzLH8MWfNXeWTHOK8pDAnNqUqI1RPLSI-HpmmRVikE8w5E/s1600-h/image_thumb%25255B9%25255D%25255B6%25255D.png&quot;&gt;&lt;img title=&quot;Как выбрать компилятор для Win64 и OSX&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;Как выбрать компилятор для Win64 и OSX&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivvWvu-NXFcTjDNeVGKNbM_5bqLfJLzH_6NyQaJXj4mn07L4QBtTYKCixnQ_GmaVywhn65377EOLTl5VC_gaVJBoE3eLNstIbUbHEs68QIuZy0O0ybxC5K9BmO-_JlwDWLO6B_nXoDXN0/?imgmax=800&quot; width=&quot;488&quot; height=&quot;154&quot; /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Новое: теперь можно изменять число ошибок, после которого Lazy Builder останавливает билд (по-умолчанию 2, как и в предыдущих версиях)      &lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIBmv7XnolNEQSfNkid2P0erxzKcXbrVlV1TjkJxgf7eYTvfNq8MaDqUzwFGKgTX9lDg5Tnysppn1uledwalbT7QU4DTq4HWKcNHIymxrgtJPdIfxT2Nz_QNq2nbuv-gQVb7EBZ9ibzM0/s1600-h/image_thumb%25255B5%25255D%25255B5%25255D.png&quot;&gt;&lt;img title=&quot;Параметры сборки&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;Параметры сборки&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3n0ha455RUnrqLdVK94y2hzv8HeVxbRBWLGL4poirMiP6c2uLt70XsQm0OZ9bwrPDNv82kAVfCYWLJkXITFwhX1uczqoCP2CU2j77nu2V6JOUfUAZyPZiqt36EUAtKcnvEsZsi6DxiWI/?imgmax=800&quot; width=&quot;484&quot; height=&quot;313&quot; /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Исправлено: Access Violation при нажатии кнопки &amp;quot;Load preset&amp;quot;, который возникал при пустом списке (спасибо за отчёты об ошибках) &lt;/li&gt;    &lt;li&gt;Исправлено: в выходных папках нельзя было использовать Unicode-ные (не-ansi) символы. Реализовано так: преобразование в OEM теперь выполняется только для Delphi версий младше чем D2009 (я не нашёл точной информации о том, начиная с каких версий Delphi и Windows, корректно поддерживается Юникод в командной строке, если что-то не будет работать - пишите). &lt;/li&gt;    &lt;li&gt;Исправлено: Удаление package из IDE не работало для Delphi версий младше чем XE2. &lt;/li&gt;    &lt;li&gt;Исправлено: Дерево с файлами: зависание при попытке посмотреть детальную инфу о проблменом (erroneous) пакете или проекте. &lt;/li&gt;    &lt;li&gt;Исправлено (надеюсь): иногда невозможно изменить выбранную версию Delphi после компиляции &lt;/li&gt;    &lt;li&gt;Minor: исправлены подсказки на закладке &amp;quot;Scan settings&amp;quot; &lt;/li&gt;    &lt;li&gt;Minor: во всех текстах dcc32 был переименован в dccXX &lt;/li&gt;    &lt;li&gt;Добавлена поддержка Delphi XE6 =) &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Скачать можно &lt;a href=&quot;http://code.google.com/p/lazyproject/downloads/list&quot;&gt;отсюда&lt;/a&gt;.&lt;/p&gt;  &lt;h4&gt;Ссылки по теме&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;/2013/04/lazy-delphi-builder-186240-28-04-2013.html&quot;&gt;Lazy Delphi Builder 1.8.6.240 от 28-04-2013 для Delphi XE4 и XE5&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;/2012/09/lazy-delphi-builder-175232-13-09-2012.html&quot;&gt;Lazy Delphi Builder 1.7.5.232 от 13-09-2012 для Delphi XE3&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;/search/label/Lazy%20Delphi%20Builder&quot;&gt;Все записи по теме Lazy Delphi Builder&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.lazyproject.info/&quot;&gt;www.lazyproject.info&lt;/a&gt; – домашняя страница Lazy Delphi Builder &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups#!forum/lazyproject&quot;&gt;Lazy Delphi Builder в Google Groups&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  </content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/4146185022891202982/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2013/09/lazy-delphi-builder197251xe5.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/4146185022891202982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/4146185022891202982'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2013/09/lazy-delphi-builder197251xe5.html' title='Lazy Delphi Builder 1.9.7.251. 15-сен-2013 для XE5 и XE6'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivvWvu-NXFcTjDNeVGKNbM_5bqLfJLzH_6NyQaJXj4mn07L4QBtTYKCixnQ_GmaVywhn65377EOLTl5VC_gaVJBoE3eLNstIbUbHEs68QIuZy0O0ybxC5K9BmO-_JlwDWLO6B_nXoDXN0/s72-c?imgmax=800" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-1697194678958918145</id><published>2013-04-28T03:32:00.001+03:00</published><updated>2013-12-16T22:05:36.000+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogroll"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="Lazy Delphi Builder"/><title type='text'>Lazy Delphi Builder 1.8.6.240 от 28-04-2013 для Delphi XE4 и XE5</title><content type='html'>&lt;h4&gt;Что нового (вкратце):&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;Поддержка &lt;strong&gt;Delphi XE4.&lt;/strong&gt; И на всякий случай, сразу и &lt;strong&gt;Delphi XE5&lt;/strong&gt;, - вдруг выйдет через месяц =) &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Профили (мини)&lt;/strong&gt;. Теперь можно сохранять профили групп настроек для дальнейшего использования. Сделано для: выходных папок, настроек билда, переменных окружения и других мелочей (см. ниже). &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Изменён формат хранения списков&lt;/strong&gt; в файлах LazyDBP и ini. Теперь без цифр – а это значит, что сравнить два файла в Diff-viewer-е станет совсем просто. И кстати, теперь все настройки будут сохраняться в подкаталоге Data. Новый формат профилей не имеет обратной совместимости со старым. Но возможность сохранить в старом формате осталась в Save As диалоге. &lt;/li&gt;
&lt;li&gt;Поддержка &lt;strong&gt;нескольких выражений в фильтре&lt;/strong&gt; дерева (через точку с запятой “;”) &lt;/li&gt;
&lt;li&gt;Появилась возможность &lt;strong&gt;вместо dcc32.exe подставлять свой файл&lt;/strong&gt;. Это может быть .bat-ник, может быть .exe. А может быть и dcc64.exe (см. пункт 9 в истории изменений) &lt;/li&gt;
&lt;li&gt;Добавлено автоопределение версии Delphi по названию файла пакета (см. Check Wizard) &lt;/li&gt;
&lt;li&gt;Появился редактор для compiler defines в виде CheckListBox-а &lt;/li&gt;
&lt;li&gt;Много мелких улучшений и исправлений (подробный список под катом, и в архиве с программой). &lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Скачивать на домашней странице: &lt;a href=&quot;http://www.lazyproject.info/downloads/&quot;&gt;http://www.lazyproject.info/downloads/&lt;/a&gt; или &lt;a href=&quot;http://code.google.com/p/lazyproject/downloads/list&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;  &lt;h5&gt;Подробный список изменений версии Lazy Delphi Builder 1.8.6.240:&lt;/h5&gt;&lt;p&gt;Дата релиза: 28.04.2013.&lt;/p&gt;&lt;p&gt;0. Добавлена поддержка Delphi XE4 и XE5 (не тестировалось - напишите мне, если у вас это работает)    &lt;br /&gt;
1. Сделать так, чтобы номера строк вообще не сохранялись для списков в .ini и .LzyDbp файлах.     &lt;br /&gt;
2. Console: В справке командной строки выводить пример использования.     &lt;br /&gt;
3. Исправлена ошибка с указанием в качестве BaseDir относительной папки (передачей в /OutputDirBase). Например написав просто Test компилироваться не будет.     &lt;br /&gt;
4. При запуске компиляции блокировать возможность изменить выбранную версию Delphi     &lt;br /&gt;
5. Возможна ситуация с Assertion Failed связанной с выбранной версией Delphi при попытке открыть диалог компиляции. Помогает перевыбор версии Delphi.     &lt;br /&gt;
6. Исправлен AV при запуске программы без установленной Delphi.     &lt;br /&gt;
7. При запуске программы без установленной Delphi, теперь блокируются контролы, требующие наличия Delphi для работы.     &lt;br /&gt;
8. При сканировании файлов, для ProgressBar-а, вместо pstProgress использовать pstMarquee.     &lt;br /&gt;
9. Дать возможность указывать свой собственный Компилятор командной строки. Или запускать свой .bat файл вместо dcc32. Сделано. Пока только с помощью редактирования LazyDBP файла: В секцию [[Build Settings]] надо добавить ключ: CustomCompiler=Полный путь к компилятору.     &lt;br /&gt;
10. В Build диалоге Рядом с Base Folder добавить кнопку вызывающую Popup Menu с пунктами:     &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; 1. Новая папка в temp директории     &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; 2. Текущая папка     &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; 3. Открыть Base-папку в Explorer-е     &lt;br /&gt;
11. Исправлено: Если во процессе обработки файлов в дерево перетащить другую папку, процесс обработки прервется.     &lt;br /&gt;
12. Empty Recycle bin не срабатывает если только что удалили и узел в дереве не раскрыт     &lt;br /&gt;
13. Ошибка в дереве при Check All required: в случае, если в дереве есть пакеты с одинаковыми названиями, но удаленные в Recycle Bin, то выделение не сработает. Это было исправлено двояко. 1 через libsuffix. 2 через проверку флага удаления.     &lt;br /&gt;
14. Увеличить размер поля для ввода defines     &lt;br /&gt;
15. Отдельный CheckList редактор для DEFINES при Compile.     &lt;br /&gt;
16. Сделать редактор для defines, чтобы полный список хранился в ини файле, а в редакторе можно было отметить галочки     &lt;br /&gt;
17. Bug: Ctrl+A в дереве с файлами в режиме списка выделяет даже отфильтрованные записи     &lt;br /&gt;
18. В дереве в Filter добавить кнопку очистки edit-a фильтра     &lt;br /&gt;
19. в дереве в Filter сделать поддержку нескольких выражений через ; (спасибо Nashev-у за идею)     &lt;br /&gt;
20. nashev: показывать в строке какой проект из скольки компилируется     &lt;br /&gt;
21. Сохранение размеров форм     &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; 1. Env options     &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; 2. Build dialog     &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; 3. MainForm     &lt;br /&gt;
22. Preset-ы (возможность сохранить/загрузить набор значений с определенным именем):     &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; 1. для Env Vars     &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; 2. Lazy include Paths     &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; 3. для Scan Folders     &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; 4. для Exclude extensions     &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; 5. в Build диалоге:     &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 1. для Build Options     &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2. для Directories     &lt;br /&gt;
23. В окне About не был указан емэйл     &lt;br /&gt;
24. В окне About дать возможность скопировать ссылку в буфер обмена (правый клик -&amp;gt; Copy)     &lt;br /&gt;
25. Ошибка: Hint может остаться висеть и не пропасть при переключении на другое окно или на другую программу.     &lt;br /&gt;
26. обновить JCL     &lt;br /&gt;
27. Закладка Installed Packages: прятать системные пакеты (пакеты, устанавливаемые в Bin папку Delphi)     &lt;br /&gt;
28. Тестовая функция: Check Wizard (Ctrl+W) в дереве на закладке &amp;quot;2 Select Files to compile&amp;quot;     &lt;br /&gt;
29. В меню дерева на закладке &amp;quot;Select Files to compile&amp;quot; новый пункт Check Packages for Current IDE     &lt;br /&gt;
30. При изменении текущей версии Delphi, список пакетов должен обновляться.     &lt;br /&gt;
31. Теперь все настройки хранятся в подпапке Data&lt;/p&gt;&lt;h4&gt;Ссылки по теме&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2012/09/lazy-delphi-builder-175232-13-09-2012.html&quot;&gt;Lazy Delphi Builder 1.7.5.232 от 13-09-2012 для Delphi XE3&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/search/label/Lazy%20Delphi%20Builder&quot;&gt;Все записи по теме Lazy Delphi Builder&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.lazyproject.info/&quot;&gt;www.lazyproject.info&lt;/a&gt; – домашняя страница Lazy Delphi Builder &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups#!forum/lazyproject&quot;&gt;Lazy Delphi Builder в Google Groups&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/1697194678958918145/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2013/04/lazy-delphi-builder-186240-28-04-2013.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/1697194678958918145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/1697194678958918145'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2013/04/lazy-delphi-builder-186240-28-04-2013.html' title='Lazy Delphi Builder 1.8.6.240 от 28-04-2013 для Delphi XE4 и XE5'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-2269027074644391452</id><published>2013-03-29T22:25:00.001+02:00</published><updated>2017-11-25T01:37:43.938+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogroll"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="know how"/><category scheme="http://www.blogger.com/atom/ns#" term="spring"/><category scheme="http://www.blogger.com/atom/ns#" term="генерики"/><category scheme="http://www.blogger.com/atom/ns#" term="инструменты"/><category scheme="http://www.blogger.com/atom/ns#" term="организация проекта"/><category scheme="http://www.blogger.com/atom/ns#" term="перевод"/><title type='text'>Головокружительные возможности DI и Delphi Spring. Часть 9. Один интерфейс – несколько реализаций.</title><content type='html'>Это последний перевод из серии про внедрение зависимостей на примере использования Delphi Spring.&lt;br /&gt;
Это перевод публикации Ника Ходжеса от 07 ноября 2011 года: &lt;a href=&quot;http://www.nickhodges.com/post/Getting-Giddy-with-Dependency-Injection-and-Delphi-Spring-9-One-Interface-Many-Implementations.aspx&quot;&gt;Getting Giddy with Dependency Injection and Delphi Spring #9 – One Interface, Many Implementations&lt;/a&gt;. (перевод сделан с разрешения автора).&lt;br /&gt;
&lt;h3&gt;
Все переводы по Spring&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Я не переводил части с 1й по 5ю, потому что мне было лень - там очень много текста, и, по моему скромному мнению, эти части не содержат конкретной информации об использовании Delphi Spring, а постепенно подводят к необходимости использования Dependency Injection. Причём, Ник ведёт к этому слишком длинным и запутанным путём. См. Ссылки по теме.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2011/07/dependency-injection-i-osnovy-delphi.html&quot;&gt;DI и Delphi Spring. Часть 5. Основы Delphi Spring.&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2012/06/dependency-injection-i-delphi-spring-6.html&quot;&gt;DI и Delphi Spring. Часть 6. Обойдёмся без конструктора.&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2012/07/dependency-injection-i-delphi-spring-7.html&quot;&gt;DI и Delphi Spring. Часть 7. Контроль над созданием.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2012/09/dependency-injection-i-delphi-spring-8.html&quot;&gt;DI и Delphi Spring. Часть 8. Разное.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2013/03/dependency-injection-i-delphi-spring-9.html&quot;&gt;DI и Delphi Spring. Часть 9. Один интерфейс несколько реализаций.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;i&gt;Как обычно, &lt;a href=&quot;http://code.google.com/p/delphi-spring-framework/&quot;&gt;Delphi Spring Framework можно скачать с GoogleCode&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;
До сих пор мы регистрировали интерфейсы и их реализации в соотношении один к одному. Для каждого интерфейса регистрировался только один реализующий класс. Но что, если мы хотим реализовать интерфейс разными способами, выбирая реализацию в зависимости от выбора пользователя или других внешних факторов?&lt;br /&gt;
К счастью для нас, контейнер Spring предоставляет такую возможность. Система регистрации контейнера в фреймворке Delphi Spring позволяет при каждой регистрации указать имя предоставляемой реализации, давая таким образом возможность отличать одну регистрацию от другой, даже если они регистрируют разные реализации для одного и того же интерфейса.&lt;br /&gt;
&lt;i&gt;При регистрации нескольких реализаций одного интерфейса &lt;b&gt;без&lt;/b&gt; указания имени «победит последний».&lt;/i&gt;&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;Давайте объявим простой интерфейс для кредитной карты следующим образом:&lt;br /&gt;
&lt;pre class=&quot;brush: delphi;&quot;&gt;type
  ICreditCard = interface
    [&#39;{6490640C-0E2B-4F7D-908C-0E6A74DCC0A0}&#39;]
    function IsValid(aCreditCardNumber: string): boolean;
    function ChargeAmount(aCreditCardNumber: string; aAmount: Double): Boolean;
  end;
&lt;/pre&gt;
Существует множество кредитных карт, которые могут использовать клиенты, поэтому нам понадобятся разные реализации карт для различных вендоров: &lt;br /&gt;
&lt;pre class=&quot;brush: delphi;&quot;&gt;GlobalContainer.RegisterType&amp;lt;TVisa&amp;gt;.Implements&amp;lt;ICreditCard&amp;gt;(&#39;VISA&#39;);
GlobalContainer.RegisterType&amp;lt;TMasterCard&amp;gt;.Implements&amp;lt;ICreditCard&amp;gt;(&#39;MasterCard&#39;);
GlobalContainer.RegisterType&amp;lt;TDiscover&amp;gt;.Implements&amp;lt;ICreditCard&amp;gt;(&#39;Discover&#39;);
GlobalContainer.RegisterType&amp;lt;TAMEX&amp;gt;.Implements&amp;lt;ICreditCard&amp;gt;(&#39;AMEX&#39;);

&lt;/pre&gt;
Этот код регистрирует четыре разных класса (TVisa, TMasterCard, TDiscover, TAMEX) для одного и того же интерфейса (ICreditCard) с помощью строкового параметра при вызове GetService. Как только они будут зарегистрированы, вы сможете выбрать какой класс вы использовать в качестве реализации ICreditCard при обработки кредитной карты. Вы даже сможете изменить свой выбор в режиме выполнения, основываясь, скажем на выборе пользователя или на различиях обработки заказов и т.п.&lt;br /&gt;
Например, если у вас есть четыре переключателя (radio button) которые позволяют пользователю выбрать одну из четырех кредитных карт, то вы сможете сделать следующее:&lt;br /&gt;
&lt;pre class=&quot;brush: delphi;&quot;&gt;var
   CurrentCard: ICreditCard
 
...
 
procedure TMultipleImplementationsForm.RadioButton1Click(Sender: TObject);
begin
  CurrentCard := ServiceLocator.GetService&amp;lt;ICreditCard&amp;gt;(&#39;VISA&#39;);
end;
 
procedure TMultipleImplementationsForm.RadioButton2Click(Sender: TObject);
begin
  CurrentCard := ServiceLocator.GetService&amp;lt;ICreditCard&amp;gt;(&#39;MasterCard&#39;);
end;
 
procedure TMultipleImplementationsForm.RadioButton3Click(Sender: TObject);
begin
  CurrentCard := ServiceLocator.GetService&amp;lt;ICreditCard&amp;gt;(&#39;Discover&#39;);
end;
 
procedure TMultipleImplementationsForm.RadioButton4Click(Sender: TObject);
begin
  CurrentCard := ServiceLocator.GetService&amp;lt;ICreditCard&amp;gt;(&#39;AMEX&#39;);
end;
&lt;/pre&gt;
Приведенный выше код присвоит экземпляр соответствующего объекта реализации в одну переменную CurrentCard в зависимости от выбранного пользователем переключателя. Соответствующий объект будет возвращён на основании строки переданной в GetService. Эта строка, конечно же, должна соответствовать строке, с которой была зарегистрирована нужная реализация объекта. &lt;br /&gt;
Таким образом вы можете зарегистрировать по имени и затем использовать столько реализаций интерфейса, сколько вам будет угодно. Очевидно, что это предоставляет массу возможностей, так как позволяет вам выбирать из любого количества реализаций и при этом в любой момент добавлять новые реализации. (примечание переводчика: представляю, какая там каша будет после лет 5 активного использования именованных динамической реализаций).&lt;br /&gt;
&lt;a href=&quot;http://bit.ly/vJWd5B&quot;&gt;Пример приложения, показывающего эту технику&lt;/a&gt;, а также некоторые другие интересные особенности могут быть найдены в &lt;a href=&quot;http://bit.ly/tt2oRJ&quot;&gt;примерах, которые поставляются вместе с фреймворком Delphi Spring&lt;/a&gt;.&lt;br /&gt;
&lt;hr /&gt;
&lt;h3&gt;
Ссылки &lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;links&quot;&gt;по&lt;/a&gt; теме&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Cоветую почитать и подумать о &lt;a href=&quot;http://ru.wikipedia.org/wiki/SOLID_(%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)&quot;&gt;SOLID&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/166287/&quot;&gt;Habrahabr: Dependency Injection: анти-паттерны&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/91650/&quot;&gt;Habrahabr: Использование IoC контейнеров. За и Против.&lt;/a&gt; Обсуждение паттерна Service Locator. (.net, Unity) &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/63568/&quot;&gt;Habrahabr: DI и IoC для начинающих, часть 3&lt;/a&gt;. Применение Unity (.net) при написании unit-тестов. &lt;em&gt;По ссылке можно найти и другие части статьи&lt;/em&gt;. &lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/2269027074644391452/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2013/03/dependency-injection-i-delphi-spring-9.html#comment-form' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/2269027074644391452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/2269027074644391452'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2013/03/dependency-injection-i-delphi-spring-9.html' title='Головокружительные возможности DI и Delphi Spring. Часть 9. Один интерфейс – несколько реализаций.'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-5901941375881281017</id><published>2013-03-11T02:39:00.001+02:00</published><updated>2013-03-11T02:49:54.541+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogroll"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="обзор"/><category scheme="http://www.blogger.com/atom/ns#" term="подведение итогов"/><title type='text'>Лучшее в Delphi блогах за 2012 год</title><content type='html'>&lt;p&gt;&lt;a href=&quot;/2013/03/luchshee-o-delphi-za-2012-god.html&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;&quot; border=&quot;0&quot; alt=&quot;&quot; align=&quot;right&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihyphenhyphenq6YtyrkHilRsOHpniuo0HGxiJ4VKALo9GXYKgWgDJ5Md_et8TCzDKFzKoaoBdz030KH0zcms15agy5CltC6BW-o8Gfxn2l_jOVNvxv2___ZrShtu7XLFn_86s7G3QUMWFBMr5Suh4Y/?imgmax=800&quot; width=&quot;240&quot; height=&quot;200&quot; /&gt;&lt;/a&gt;Все лучшие публикации по Delphi за 2012 год в одном месте. Радует, что качество публикаций растёт с каждым годом.&amp;#160; &lt;/p&gt;  &lt;p&gt;Рад видеть среди новых авторов Александра Багеля (Rouse_), чьи советы и наработки опубликованные на форумах не раз мне помогали. Также, рад видеть новых авторов из Embarcadero (и особенно Сергея Рощина).&lt;/p&gt;  &lt;p&gt;Отдельно рекомендую обратить внимание на:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Перевод справочной системы Delphi (тем, кто не читает на английском) &lt;/li&gt;    &lt;li&gt;Серию постов Александра Багеля (изучаем отладчик) &lt;/li&gt;    &lt;li&gt;Разделы Инструменты и компоненты &lt;/li&gt;    &lt;li&gt;Статью “Разработка через тестирование” &lt;/li&gt;    &lt;li&gt;Материалы по Delphi Spring &lt;/li&gt;    &lt;li&gt;Все публикации и переводы Александра Алексеева &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Подборки ссылок за предыдущие годы: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2010/01/2009.html&quot;&gt;Самые интересные публикации &lt;b&gt;2009&lt;/b&gt; года&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2011/03/delphi-2010.html&quot;&gt;Самое интересное в Delphi-блогах за &lt;b&gt;2010&lt;/b&gt; год&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;/2012/04/samoe-interesnoe-v-delphi-blogah-za.html&quot;&gt;Лучшее в Delphi-блогах за &lt;b&gt;2011&lt;/b&gt; год&lt;/a&gt;&amp;#160; &lt;/li&gt; &lt;/ul&gt; &lt;a name=&#39;more&#39;&gt;&lt;/a&gt;  &lt;hr /&gt;  &lt;h3&gt;Оглавление&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#design&quot;&gt;Проектирование&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#spring&quot;&gt;Головокружительные возможности Dependency Injection и Delphi Spring&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#plugins&quot;&gt;Разработка системы плагинов в Delphi.&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#mvc&quot;&gt;MVC подход при разработке GUI в Delphi&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#internals&quot;&gt;О внутреннем устройстве Delphi&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#help&quot;&gt;Перевод справочной системы Delphi&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#debug&quot;&gt;Серия статей &amp;quot;Изучаем отладчик&amp;quot;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#protection&quot;&gt;Защита программ. Работа с отладчиком.&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#rtti&quot;&gt;RTTI и сериализация&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#xe3&quot;&gt;Delphi XE3&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#lb&quot;&gt;Live Bindings in XE3&lt;/a&gt;           &lt;ul&gt;           &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#lbxe3&quot;&gt;«LiveBindings in XE3» от Malcolm Groves. Перевод.&lt;/a&gt; &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#fm2&quot;&gt;Firemonkey 2.0 (XE3)&lt;/a&gt;           &lt;ul&gt;           &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#fm2_brovin&quot;&gt;Ярослав Бровин (Embarcadero) о Firemonkey 2.0&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#fm2_vlad&quot;&gt;Firemonkey от простого к сложному. Владислав Баженов.&lt;/a&gt; &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#xe3_davidi&quot;&gt;Видео-ролики от Дейвида Ай про XE3&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#xe2&quot;&gt;Delphi XE2&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#fm&quot;&gt;Firemonkey 1.0 (XE2)&lt;/a&gt;           &lt;ul&gt;           &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#fm_vlad&quot;&gt;Firemonkey от простого к сложному&lt;/a&gt; &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#vcl2fm&quot;&gt;Переход с VCL на FMX&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#db&quot;&gt;Работа с БД&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#dbx&quot;&gt;dbExpress&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#datasnap&quot;&gt;DataSnap&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#oracle&quot;&gt;Работа с СУБД Oracle дома. Быстрый старт.&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#tools&quot;&gt;Инструменты для Delphi&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#libs&quot;&gt;Компоненты и библиотеки&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#libs_author&quot;&gt;Авторские работы&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#libs_fm&quot;&gt;Firemonkey - обзоры компонентов&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#tips&quot;&gt;Полезные советы&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#transl&quot;&gt;Переводы GunSmoker-а&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#web&quot;&gt;Работа с сетью&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#games&quot;&gt;GUI, GlScene и разработка игр на FreePascal/Delphi&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#lampogolovii&quot;&gt;Lampogolovii о GUI и разработке игр&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#directx&quot;&gt;DirectX&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title=&quot;Перейти к разделу&quot; href=&quot;#other&quot;&gt;Другое&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;hr /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#design&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;design&quot;&gt;Проектирование&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://delphi.frantic.im/delphi-tdd&quot;&gt;Разработка через тестирование (TDD) и Delphi&lt;/a&gt;. Александр Котлярский &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/152025/&quot;&gt;Моя «парадигма» работы с потоками&lt;/a&gt; (см. комментарии). MrShoor &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#spring&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;spring&quot;&gt;Головокружительные возможности Dependency Injection и Delphi Spring&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Переводчик: Алексей Тимохин&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2012/06/dependency-injection-i-delphi-spring-6.html&quot;&gt;Часть 6. Обойдёмся без конструктора.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2012/07/dependency-injection-i-delphi-spring-7.html&quot;&gt;Часть 7. Контроль над созданием.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2012/09/dependency-injection-i-delphi-spring-8.html&quot;&gt;Часть 8. Разное.&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#plugins&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;plugins&quot;&gt;Разработка системы плагинов в Delphi. Продолжение старой серии статей «создаём систему плагинов»&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Александр Алексеев (gunsmoker). &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.gunsmoker.ru/2011/12/delphi.html&quot;&gt;Разработка системы плагинов в Delphi&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a name=&quot;5777257077220706959&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.gunsmoker.ru/2012/01/delphi-2-api.html&quot;&gt;Разработка системы плагинов, часть 2: разработка API&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a name=&quot;7680018511720040678&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.gunsmoker.ru/2012/01/3.html&quot;&gt;Разработка системы плагинов, часть 3: активные плагины&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a name=&quot;5020942920695665226&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.gunsmoker.ru/2012/01/4.html&quot;&gt;Разработка системы плагинов, часть 4: взаимодействие плагинов&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a name=&quot;6923614637733481073&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.gunsmoker.ru/2012/02/5.html&quot;&gt;Разработка системы плагинов, часть 5: отладка и обработка ошибок&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.gunsmoker.ru/2012/05/6-ui.html&quot;&gt;Разработка системы плагинов, часть 6: UI в плагинах&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.gunsmoker.ru/2012/06/7.html&quot;&gt;Разработка системы плагинов, часть 7: пакеты и оптимизация по размеру&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.gunsmoker.ru/2012/07/8.html&quot;&gt;Разработка системы плагинов, часть 8: расширение системы и обратная совместимость&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#mvc&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;mvc&quot;&gt;MVC подход при разработке GUI в Delphi&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Антон Алисов&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/147133/&quot;&gt;MVC-подход к разработке пользовательских интерфейсов в Delphi. Часть 1. Галочка&lt;/a&gt;. Антон Алисов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/147198/&quot;&gt;[Не совсем]-MVC-подход к разработке пользовательских интерфейсов в Delphi. Часть 2. Списки&lt;/a&gt;. Антон Алисов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/147466/&quot;&gt;[Почти]-MVC-подход к реализации пользовательского интерфейса в Delphi. Часть 3. Объекты&lt;/a&gt;. Антон Алисов &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#internals&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;internals&quot;&gt;О внутреннем устройстве Delphi&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/01/zametki-pro-dragdrop-v-delphi/&quot;&gt;Заметки про Drag&amp;amp;Drop в Delphi.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_5606.html&quot;&gt;Анонимные методы в Delphi. Вопрос по отладке&lt;/a&gt;. Андрей Терехов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.gunsmoker.ru/2012/12/webinar-2012-record.html&quot;&gt;Запись вебинара &amp;quot;Обработка ошибок в Delphi (V2).&lt;/a&gt;&amp;quot;, декабрь 2012. Александр Алексеев. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#help&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;help&quot;&gt;Перевод справочной системы Delphi&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Источник: &lt;a title=&quot;http://pascal-study.blogspot.ru&quot; href=&quot;http://pascal-study.blogspot.ru&quot;&gt;http://pascal-study.blogspot.ru&lt;/a&gt; Автор: svg&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2012/02/blog-post.html&quot;&gt;Идентичность и совместимость типов данных&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2012/02/delphi.html&quot;&gt;Применение пространств имен в Delphi&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2012/02/blog-post_25.html&quot;&gt;Переменные&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2012/02/blog-post_7446.html&quot;&gt;Объявляемые константы&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2012/03/blog-post.html&quot;&gt;Классы и объекты&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2012/03/blog-post_01.html&quot;&gt;Поля&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2012/03/delphi.html&quot;&gt;Анонимные методы в Delphi&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2012/05/blog-post.html&quot;&gt;Методы&lt;/a&gt;. Оригинал:&lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/en/Methods&quot;&gt;Methods&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2012/05/blog-post_03.html&quot;&gt;Свойства&lt;/a&gt;. Оригинал: &lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/en/Properties&quot;&gt;Properties&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2012/05/blog-post_670.html&quot;&gt;События&lt;/a&gt;. Оригинал: &lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/en/Events&quot;&gt;Events&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2012/05/blog-post_19.html&quot;&gt;Ссылки на класс&lt;/a&gt;. Перевод раздела &lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/en/Class_References&quot;&gt;Class References&lt;/a&gt; из справочной системы Delphi &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2012/05/blog-post_1059.html&quot;&gt;Исключения (исключительные ситуации)&lt;/a&gt;. Перевод раздела &lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/en/Exceptions&quot;&gt;Exceptions&lt;/a&gt; из справочной системы Delphi &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2012/05/blog-post_2657.html&quot;&gt;Классы и записи - помощники&lt;/a&gt;. Перевод раздела &lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/en/Class_and_Record_Helpers&quot;&gt;Class and Record Helpers&lt;/a&gt; из справочной системы Delphi &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2012/05/blog-post_5162.html&quot;&gt;Встроенные типы&lt;/a&gt;. Перевод раздела &lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/en/Nested_Type_Declarations&quot;&gt;Nested Type Declarations&lt;/a&gt; из справочной системы Delphi &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://pascal-study.blogspot.ru/2012/05/blog-post_7104.html&quot;&gt;Перегрузка операторов&lt;/a&gt;. Перевод раздела &lt;a href=&quot;http://docwiki.embarcadero.com/RADStudio/en/Operator_Overloading&quot;&gt;Operator Overloading&lt;/a&gt; из справочной системы Delphi &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#debug&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;debug&quot;&gt;Серия статей &amp;quot;Изучаем отладчик&amp;quot;&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Цели статьи: рассмотреть основные методы работы с отладчиком, показать его расширенные и редко используемые возможности, дать понимание работы механизмов отладчика на примерах и рассмотреть некоторый набор методов противодействия. &lt;a href=&quot;http://www.blogger.com/profile/03072586754182036553&quot;&gt;Александр (Rouse_) Багель&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://alexander-bagel.blogspot.com/2012/10/debugger-1.html.html&quot;&gt;Изучаем отладчик, часть первая&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://alexander-bagel.blogspot.com/2012/11/debuger-2.html&quot;&gt;Изучаем отладчик, часть вторая&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://alexander-bagel.blogspot.com/2012/11/debuger-3.html&quot;&gt;Изучаем отладчик, часть третья&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#protection&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;protection&quot;&gt;Защита программ. Работа с отладчиком.&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://alexander-bagel.blogspot.com/2012/08/getlocaltime.html&quot;&gt;Эмулируем GetLocalTime&lt;/a&gt;. Что можно сделать для защиты trial программы, чтобы усложнить анализ кода и подмену даты. &lt;a href=&quot;http://www.blogger.com/profile/03072586754182036553&quot;&gt;Александр (Rouse_) Багель&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://alexander-bagel.blogspot.com/2012/09/blog-post.html&quot;&gt;Теория использования электронных ключей защиты.&lt;/a&gt; &lt;a href=&quot;http://www.blogger.com/profile/03072586754182036553&quot;&gt;Александр (Rouse_) Багель&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://alexander-bagel.blogspot.com/2012/08/cratefile.html&quot;&gt;Отключение главной нити приложения от отладчика и уход от перехвата CreateFile()&lt;/a&gt;.&lt;a href=&quot;http://www.blogger.com/profile/03072586754182036553&quot;&gt;Александр (Rouse_) Багель&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://alexander-bagel.blogspot.com/2012/09/guardant.html&quot;&gt;Простой способ обнаружения эмуляторов ключа Guardant&lt;/a&gt;. &lt;a href=&quot;http://www.blogger.com/profile/03072586754182036553&quot;&gt;Александр (Rouse_) Багель&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://alexander-bagel.blogspot.com/2012/09/blog-post_10.html&quot;&gt;Уход из под отладчика срывом стэка&lt;/a&gt;. &lt;a href=&quot;http://www.blogger.com/profile/03072586754182036553&quot;&gt;Александр (Rouse_) Багель&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#rtti&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;rtti&quot;&gt;RTTI и сериализация&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_4504.html&quot;&gt;Работа с XML и сериализация записей (record).&lt;/a&gt; Производительность при сериализации в XML. Андрей Терехов&lt;u&gt;&lt;/u&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_4505.html&quot;&gt;Заметка о RTTI, TValue и real/double/extended&lt;/a&gt;. Андрей Терехов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_4506.html&quot;&gt;Настройки программы в INI с использованием RTTI#7&lt;/a&gt;. Андрей Терехов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_4508.html&quot;&gt;Цепочки событий (Event Chain) RTTI#8&lt;/a&gt;. Андрей Терехов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_5449.html&quot;&gt;О глобальных переменных и RTTI#9&lt;/a&gt;. Андрей Терехов &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#xe3&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;xe3&quot;&gt;Delphi XE3&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://alexander-bagel.blogspot.com/2012/09/embarcadero-delphi-xe3-12092012.html&quot;&gt;Итоги семинара Embarcadero посвященному выпуску Delphi XE3 в Москве 12.09.2012&lt;/a&gt;. &lt;a href=&quot;http://www.blogger.com/profile/03072586754182036553&quot;&gt;Александр (Rouse_) Багель&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/09/znakomstvo-s-delphi-xe3/&quot;&gt;Знакомство с Delphi XE3&lt;/a&gt;. Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/09/delphi-xe3-obnovleniya-v-rtl/&quot;&gt;Delphi XE3. Обновления в RTL.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/09/znakomstvo-s-visual-livebindings-v-delphi-xe3/&quot;&gt;Знакомство с Visual LiveBindings в Delphi XE3.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/09/modul-s-xelperami-dlya-integer-char-i-tdatetime/&quot;&gt;Модуль с хэлперами для Integer, Char и TDateTime.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/10/delphi-xe3-rabota-s-mac-os-x/&quot;&gt;Delphi XE3: работа с Mac OS X.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/11/delphi-xe3-rabota-s-xml-v-mac-os-x/&quot;&gt;Delphi XE3: работа с XML в Mac OS X.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2012/10/mui-lb-fmx.html&quot;&gt;Размышления о новинках: Metro UI, Live Bindings, FMX&lt;/a&gt;.&amp;#160; Николай Зверев. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/roschinspb/2012/10/02/actions_in_xe3/&quot;&gt;TAction в XE3&lt;/a&gt;. - Что изменилось? Что нового? Сергей Рощин (Embarcadero) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/roschinspb/2012/11/30/customtext-text/&quot;&gt;TAction в XE3. CustomText и Text.&lt;/a&gt; Сергей Рощин (Embarcadero) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_5618.html&quot;&gt;Delphi XE3 Metropolis UI и другое&lt;/a&gt;.&amp;#160; Андрей Терехов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_5713.html&quot;&gt;Delphi XE3: TStringHelper&lt;/a&gt;. Андрей Терехов &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#lb&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;lb&quot;&gt;Live Bindings in XE3&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://delphi2010.ru/?p=1179&quot;&gt;FM2 и работа с данными&lt;/a&gt; (LiveBinding). Александр Божко &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphi2010.ru/?p=1214&quot;&gt;Visual LiveBinding. Пример и видео с Семинара 11 октября в Харькове.&lt;/a&gt; Александр Божко &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#lbxe3&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;lbxe3&quot;&gt;«LiveBindings in XE3» от Malcolm Groves. Перевод.&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;Переводчик: Сергей Тихонов&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://g-sirr.ru/livebindings-%d0%b2-xe3-tadapterbindsource-%d0%b8-%d1%81%d0%b2%d1%8f%d0%b7%d1%8b%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%81-%d0%be%d0%b1%d1%8a%d0%b5%d0%ba%d1%82%d0%b0%d0%bc%d0%b8-%d0%bf%d0%b5%d1%80%d0%b5/&quot;&gt;TAdapterBindSource и связывание с объектами&lt;/a&gt;. Оригинал: &lt;a href=&quot;http://www.malcolmgroves.com/&quot;&gt;Malcolm Groves&lt;/a&gt;, &lt;a href=&quot;http://www.malcolmgroves.com/blog/?p=1084&quot;&gt;LiveBindings in XE3: TAdapterBindSource and binding to Objects&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://g-sirr.ru/livebindings-%d0%b2-xe3-%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%be%d0%b1%d1%8a%d0%b5%d0%ba%d1%82%d0%be%d0%b2-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-%d0%b0%d0%b4%d0%b0%d0%bf%d1%82/&quot;&gt;Обновление Объектов через Адаптер&lt;/a&gt;. Оригинал: &lt;a href=&quot;http://www.malcolmgroves.com/&quot;&gt;Malcolm Groves&lt;/a&gt;, &lt;a href=&quot;http://www.malcolmgroves.com/blog/?p=1186&quot;&gt;LiveBindings in XE3: Updating Objects via an Adapter&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://g-sirr.ru/livebindings-%d0%b2-xe3-%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2%d0%b0%d1%88%d0%b8%d1%85-%d0%bf%d0%be%d0%bb%d0%b5%d0%b9-%d0%bf%d0%b5%d1%80%d0%b5/&quot;&gt;Форматирование ваших полей&lt;/a&gt;. Оригинал: &lt;a href=&quot;http://www.malcolmgroves.com/&quot;&gt;Malcolm Groves&lt;/a&gt;, &lt;a href=&quot;http://www.malcolmgroves.com/blog/?p=1226&quot;&gt;LiveBindings in XE3: Formatting your Fields&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://g-sirr.ru/livebindings-%d0%b2-xe3-tbindsourcedb-%d0%bf%d0%b5%d1%80%d0%b5%d0%b2%d0%be%d0%b4/&quot;&gt;TBindSourceDB&lt;/a&gt;. Оригинал: &lt;a href=&quot;http://www.malcolmgroves.com/&quot;&gt;Malcolm Groves&lt;/a&gt;, &lt;a href=&quot;http://www.malcolmgroves.com/blog/?p=1072&quot;&gt;LiveBindings in XE3 – TBindSourceDB&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#fm2&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;fm2&quot;&gt;Firemonkey 2.0 (XE3)&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/ekryukov/2012/10/02/directx-10-in-firemonkey-20-rus/&quot;&gt;DirectX 10 в FireMonkey 2.0&lt;/a&gt;. Евгений Крюков (Embarcadero) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/ekryukov/2012/10/02/style-performance-rus/&quot;&gt;Производительность стилей в FireMonkey 2.0&lt;/a&gt;. Евгений Крюков (Embarcadero) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/ekryukov/2012/10/03/raster-style-fm2-rus/&quot;&gt;Растровые стили в FireMonkey 2.0&lt;/a&gt;. Евгений Крюков (Embarcadero) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2012/10/16/two-styles-in-one-application/&quot;&gt;Два стиля в одном приложении FireMonkey&lt;/a&gt;. Всеволод Леонов (Embarcadero) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2012/11/16/two-styles-in-two-applications/&quot;&gt;Два стиля в двух приложениях FireMonkey&lt;/a&gt;. Всеволод Леонов (Embarcadero) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/roschinspb/2012/10/09/itextsettings/&quot;&gt;Установка параметров текста в Fire Monkey 2&lt;/a&gt; (интерфейс ITextSettings). Сергей Рощин (Embarcadero) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/sharagin/2012/10/08/adjustfmstyle_rus/&quot;&gt;Настройка FireMonkey стиля на контролах и формах&lt;/a&gt;. Cвойство StyleLookUp. Алексей Шарагин (Embarcadero) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/sharagin/2012/10/04/adjustvclstyle_rus/&quot;&gt;Настройка VCL стиля на контролах и формах&lt;/a&gt;. Свойство StyleElements. Алексей Шарагин (Embarcadero) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://keeper89.blogspot.com/2012/01/blog-post_27.html&quot;&gt;Firemonkey - разговор с разработчиком. Запись вебинара с Е. Крюковым.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://keeper89.blogspot.com/2012/03/firemonkey-styles.html&quot;&gt;Запись вебинара FireMonkey Styles&lt;/a&gt; с Евгением Крюковым &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://youtu.be/9cr-FGaDDR0&quot;&gt;Запись вебинара &amp;quot;FireMonkey 2.0, разработка компонентов с Ярославом Бровиным&amp;quot;&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#fm2_brovin&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;fm2_brovin&quot;&gt;Ярослав Бровин (Embarcadero) о Firemonkey 2.0&lt;/a&gt;&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/yaroslavbrovin/2012/10/02/pickers_in_xe3/&quot;&gt;Элементы управления Picker в FireMonkey. Кто такие, зачем нужны и как ими пользоваться? (Pickers in XE3)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/yaroslavbrovin/2012/10/03/flipview-1/&quot;&gt;Слайдер изображений своими руками при помощи FMX 2.0. Часть 1&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/yaroslavbrovin/2012/10/04/flipview-2/&quot;&gt;Слайдер изображений своими руками при помощи FMX 2.0. Часть 2&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/yaroslavbrovin/2012/10/05/fmx_component_developer_0/&quot;&gt;Часть 0. Разработка компонентов под FMX 2.0. История сотворения мира&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/yaroslavbrovin/2012/10/11/listboxitem_styling/&quot;&gt;TListBox в FireMonkey. Создание своих стилизованных итемов для TListBox. 1 часть&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/yaroslavbrovin/2012/10/09/fmx_component_developer_1/&quot;&gt;Часть 1. Разработка компонентов под FMX 2.0. Обзор архитектуры. Первое приближение&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/yaroslavbrovin/2012/10/15/listboxitem_styling_part2/&quot;&gt;TListBox в FireMonkey. Создание своих стилизованных итемов для TListBox. 2 Часть&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/yaroslavbrovin/2012/10/29/replace_platform_style/&quot;&gt;FMX 2.0. Глобальная замена платформенного стиля по умолчанию без TStyleBook&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/yaroslavbrovin/2012/12/27/bitbt/&quot;&gt;Часть 2. Разработка компонентов под FMX 2.0. Кнопка с картинкой&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#fm2_vlad&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;fm2_vlad&quot;&gt;Firemonkey от простого к сложному. Владислав Баженов.&lt;/a&gt;&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/09/firemonkey-ot-prostogo-k-slozhnomu-11-instrumenty-dlya-raboty-so-stilyami-monkeystyler-monkeyrecolor-i-t-d/&quot;&gt;FireMonkey. От простого к сложному #11. Инструменты для работы со стилями (MonkeyStyler, MonkeyRecolor и т.д.).&lt;/a&gt; Владислав Баженов.&lt;u&gt;&lt;/u&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/12/firemonkey-ot-prostogo-k-slozhnomu-12-ispolzovanie-dragdrop/&quot;&gt;FireMonkey. От простого к сложному #12. Использование Drag&amp;amp;Drop.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/12/firemonkey-ot-prostogo-k-slozhnomu-13-menyu-iz-prostejshix-komponentov/&quot;&gt;FireMonkey. От простого к сложному #13. Меню из простейших компонентов.&lt;/a&gt; Владислав Баженов. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#xe3_davidi&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;xe3_davidi&quot;&gt;Видео-ролики от Дейвида Ай про XE3&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Перевод: Всеволод Леонов (Embarcadero)&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2012/12/11/davidi_xe3_1of32/&quot;&gt;1/32&lt;/a&gt;. первый из 32-х, очень хорошо взбадривает и освежает впечатление от XE3. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2012/12/12/httpblogsembarcaderocomvsevolodleonov20121211davidi_xe3_2of32/&quot;&gt;2/32&lt;/a&gt;. Аудио/видео в мульти-платформенных проектах FireMonkey. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2012/12/17/davidi_xe3_3of32/&quot;&gt;3/32&lt;/a&gt;. Получение списка аудио/видео устройств в мульти-платформенных проектах FireMonkey. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2012/12/17/davidi_xe3_4of32/&quot;&gt;4/32&lt;/a&gt;. Получение списка аудио/видео устройств в мульти-платформенных проектах FireMonkey. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2012/12/20/davidi_xe3_4of32-2/&quot;&gt;5/32&lt;/a&gt;. Новые возможности FireMonkey 2.0 по размещению элементов визуального интерфейса на форме. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#xe2&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;xe2&quot;&gt;Delphi XE2&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/01/delphi-xe2-hello-mac-os/&quot;&gt;Delphi XE2: Hello, Mac OS!&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://cemick.blogspot.com/2012/03/variant-tobjectcreate.html&quot;&gt;Variant := TObject.Create ?&lt;/a&gt; Семен Хмелев &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2012/06/27/lbinaction1rus/&quot;&gt;LiveBindings в действии, 1&lt;/a&gt;.&amp;#160; Всеволод Леонов (Embarcadero) &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#fm&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;fm&quot;&gt;Firemonkey 1.0 (XE2)&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://roman.yankovsky.me/?p=285&quot;&gt;Немного покритикую FireMonkey&lt;/a&gt;. Роман Янковский. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://roman.yankovsky.me/?p=196&quot;&gt;Расширяем TTabControl в FireMonkey&lt;/a&gt;. Роман Янковский. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2012/04/11/fm_blinking_button_rus/&quot;&gt;FireMonkey - Мигающая кнопка&lt;/a&gt;.&amp;#160; Всеволод Леонов (Embarcadero) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2012/05/fire-monkey.html&quot;&gt;Fire Monkey: первый кубик деревом&lt;/a&gt;.&amp;#160; Николай Зверев. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2012/05/fire-monkey-camera-test.html&quot;&gt;Fire Monkey: Camera Test&lt;/a&gt;.&amp;#160; Николай Зверев. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://echmel.ru/2012/01/firemonkey-raycastintersect/&quot;&gt;FireMonkey.RayCastIntersect&lt;/a&gt; - преобразование 2D координат текущего положения курсора мыши в 3D координаты точки объекта. Евгений Чмель. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://echmel.ru/2012/02/tmesh-in-actio/&quot;&gt;TMesh в действии&lt;/a&gt; - о построении поверхностей второго порядка. Евгений Чмель. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2012/02/22/firemonkey-hd-3d-part-1/&quot;&gt;FireMonkey HD + 3D, часть 1&lt;/a&gt;. Всеволод Леонов (Embarcadero) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_4502.html&quot;&gt;Таблицы TGrid и TStringGrid в FireMonkey&lt;/a&gt;. Андрей Терехов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_4503.html&quot;&gt;FireMonkey и MyShows.ru #3&lt;/a&gt;. Андрей Терехов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphi2010.ru/?p=889&quot;&gt;Firemonkey на практике #2. Освещение и материал поверхности 3D объектов&lt;/a&gt;. Александр Божко &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphi2010.ru/?p=929&quot;&gt;Firemonkey на практике #3. Использование 3D моделей&lt;/a&gt;. Александр Божко &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphi2010.ru/?p=1047&quot;&gt;FireMonkey. Tips &amp;amp; Tricks&lt;/a&gt;: Как импортировать COLLADA (.dae) модель в FireMonkey программно (в Run Time). Александр Божко &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphi2010.ru/?p=1022&quot;&gt;Firemonkey на практике #5.&lt;/a&gt; Использование импортированных моделей. Александр Божко &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#fm_vlad&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;fm_vlad&quot;&gt;Firemonkey от простого к сложному&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;Владислав Баженов.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/01/firemonkey-ot-prostogo-k-slozhnomu-2-komponenty-fmx-tablici/&quot;&gt;#4. Компоненты FMX: таблицы.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/02/firemonkey-ot-prostogo-k-slozhnomu-5-effekty-perexoda-dlya-komponentov/&quot;&gt;#5. Эффекты перехода для компонентов.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/03/firemonkey-ot-prostogo-k-slozhnomu-6-class-helper-dlya-elementov-menyu/&quot;&gt;#6. Class Helper для элементов меню.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/04/firemonkey-2/&quot;&gt;#7. Работа с компонентом TPath.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/08/firemonkey-ot-prostogo-k-slozhnomu-8-razrabotka-programmy-ya-matematik/&quot;&gt;#8. Разработка программы «Я математик».&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/08/firemonkey-ot-prostogo-k-slozhnomu-9-vpechatleniya-ot-ispolzovaniya/&quot;&gt;#9. Впечатления от использования.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/08/firemonkey-ot-prostogo-k-slozhnomu-10-dorabotka-tabcontrol-dlya-ya-matematik/&quot;&gt;#10. Доработка TabControl для «Я математик».&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#vcl2fm&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;vcl2fm&quot;&gt;Переход с VCL на FMX&lt;/a&gt;&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2012/08/09/dual-compile-control/&quot;&gt;Переход с VCL на FireMonkey&lt;/a&gt;.&amp;#160; Всеволод Леонов (Embarcadero) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.embarcadero.com/vsevolodleonov/2012/08/21/vclfmxtcanvas/&quot;&gt;Переход с VCL на FireMonkey, TCanvas&lt;/a&gt;.&amp;#160; Всеволод Леонов (Embarcadero) &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#db&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;db&quot;&gt;Работа с БД&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://belenkovsv.ru/page/komponenty-dlja-dostupa-k-bd-kto-bystree-chast-6&quot;&gt;Компоненты для доступа к БД. Кто быстрее? Часть 6&lt;/a&gt;. (опубликовано в 2011 году, но в прошлом обзоре я этот пост упустил, а материал полезный) - тестирование компонентов доступа к БД в Delphi: SqlLite 3, ClientDataset, DBF (Advantage), TurboDB 6, Dbisam 4.30, MS Access 2010, AbsoluteDatabase 6.05, EasyTable 6.50, Accuracer Database 5.50, NexusDB 3.05.01, Embedded Firebird. Сергей Беленков (SerB) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.sql.ru/blogs/servit/1243&quot;&gt;Работа с объектами СУБД Caché на примере Delphi&lt;/a&gt; (&lt;a href=&quot;http://habrahabr.ru/company/intersystems/blog/144306/&quot;&gt;копия статьи - на Хабре&lt;/a&gt;). servit (Intersystems) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_5733.html&quot;&gt;Изображения в SQL Server 2008 Express, с использованием FILESTREAM и WIC&lt;/a&gt;. Андрей Терехов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/150543/&quot;&gt;SQLite и UNICODE&lt;/a&gt;. Григорий (&lt;a href=&quot;http://habrahabr.ru/users/Krovosos/&quot;&gt;Krovosos&lt;/a&gt;) &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#dbx&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;dbx&quot;&gt;dbExpress&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://echmel.ru/2012/12/dbexpress-internals/&quot;&gt;Внутренности dbExpress&lt;/a&gt;. Евгений Чмель. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://echmel.ru/2012/12/usin-dbexpress/&quot;&gt;Работа с dbExpress&lt;/a&gt; - простенький и интересный пример. Евгений Чмель. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/10/sqlite-v-delphi-xe3/&quot;&gt;SQLite в Delphi XE3.&lt;/a&gt; (dbExpress) Владислав Баженов. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#datasnap&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;datasnap&quot;&gt;DataSnap&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://echmel.ru/2012/04/datasnap-server-as-aservice/&quot;&gt;DataSnap server как сервис&lt;/a&gt;. Евгений Чмель. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/08/windows-7-x64-iis-isapi-i-datasnap-xe2-v-kartinkax/&quot;&gt;Windows 7 x64, IIS, ISAPI и DataSnap XE2 в картинках.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/08/isapi-mysql-i-datasnap-xe2/&quot;&gt;ISAPI, MySQL и DataSnap XE2.&lt;/a&gt; Владислав Баженов. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#oracle&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;oracle&quot;&gt;Работа с СУБД Oracle дома. Быстрый старт.&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Николай Зверев.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2012/02/oracle.html&quot;&gt;Работа с СУБД Oracle дома. Быстрый старт&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2012/02/oracle-2-virtualbox.html&quot;&gt;Oracle дома. Быстрый старт. Часть 2: настройка виртуальной сети для VirtualBox&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2012/02/oracle-3-oracle.html&quot;&gt;Oracle дома. Быстрый старт. Часть 3: установка и настройка oracle-клиента&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2012/02/oracle-4-delphi-oracle.html&quot;&gt;Oracle дома. Быстрый старт. Часть 4: из Delphi в Oracle&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#tools&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;tools&quot;&gt;Инструменты для Delphi&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://delphi2010.ru/?p=1108&quot;&gt;FinalBuilder&lt;/a&gt; (Embarcadero Edition) – обзор. &lt;a name=&quot;OLE_LINK4&quot;&gt;&lt;/a&gt;&lt;a name=&quot;OLE_LINK3&quot;&gt;Александр Божко&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://cemick.blogspot.com/2012/03/finalbuilder-versioninfo-delphi-7.html&quot;&gt;Чтение в FinalBuilder VersionInfo из проекта Delphi 7&lt;/a&gt;. Семен Хмелев &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphi2010.ru/?p=960&quot;&gt;Редизайн интерфейса приложения. #8&lt;/a&gt;: Используем QA Audits. Александр Божко &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_5553.html&quot;&gt;UML моделирование в Delphi. Часть 1&lt;/a&gt;. Андрей Терехов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_5588.html&quot;&gt;UML моделирование в Delphi. Часть 2.&lt;/a&gt; Андрей Терехов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/08/obzor-documentation-insight-enterprise-v-2-6/&quot;&gt;Обзор Documentation Insight Enterprise v.2.6.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.tdelphiblog.com/2012/09/revised-object-inspector-obzor.html&quot;&gt;Revised Object Inspector для Delphi 2010-XE3 от Uwe Schuster.&lt;/a&gt; Продвинутый инспектор объектов для Delphi. Описание. Алексей Тимохин. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphi.frantic.im/delphi-and-git&quot;&gt;Delphi + Git&lt;/a&gt;. Александр Котлярский &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://keeper89.blogspot.com/2012/02/cnpack-ide.html&quot;&gt;Новые фишки в CnPack IDE-Мастере. &lt;/a&gt;Юрий Петров &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphiway.ru/%d0%bd%d0%b5%d0%bf%d1%80%d0%be%d0%b8%d0%b7%d0%b2%d0%be%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d1%81%d0%b2%d0%be%d0%b9%d1%81%d1%82%d0%b2-%d0%b2-dfm-%d0%b8/&quot;&gt;Автоматическое изменение свойств в dfm и dproj затрудняют контроль версий&lt;/a&gt;. Kverde (блог DelphiWay) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/12/html5-builder-glazami-delphi-razrabotchika/&quot;&gt;HTML5 Builder глазами Delphi-разработчика.&lt;/a&gt; Владислав Баженов. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#libs&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;libs&quot;&gt;Компоненты и библиотеки&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/09/23-resheniya-dlya-lokalizacii-i-internacionalizacii-prilozhenij/&quot;&gt;23 решения для локализации и интернационализации приложений.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphiway.ru/%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d0%ba%d0%b0-%d0%be%d1%80%d1%84%d0%be%d0%b3%d1%80%d0%b0%d1%84%d0%b8%d0%b8-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c%d1%8e-%d0%b1%d0%b8%d0%b1%d0%bb%d0%b8%d0%be/&quot;&gt;Проверка орфографии в Delphi с помощью библиотеки Hunspell&lt;/a&gt;. Kverde (блог DelphiWay) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.fast-report.com/ru/blog/9/show/&quot;&gt;Простейший пример использования Fastcube для анализа данных&lt;/a&gt;. Олег Прялков (Fast Report) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphi2010.ru/?p=1260&quot;&gt;Преобразование отчетов Rave Report в FastReport&lt;/a&gt;. Александр Божко &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/01/bystraya-obrabotka-dannyx-excel-v-delphi/&quot;&gt;Быстрая обработка данных Excel в Delphi.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/144681/&quot;&gt;Библиотека OmniThreadLibrary — простая многопоточность в среде Delphi&lt;/a&gt;. Антон Алисов &lt;/li&gt;    &lt;li&gt;Сделан перевод на русский язык книги: &lt;a href=&quot;https://leanpub.com/omnithreadlibrary-ru&quot;&gt;Параллельное программирование с OmniThreadLibrary&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://deeptown12.blogspot.com/2012/04/microsoft-script-control-1.html&quot;&gt;Шпаргалка. Использование Microsoft Script Control в приложениях - #1&lt;/a&gt;. Дмитрий Кузан &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://deeptown12.blogspot.com/2012/04/microsoft-script-control-2.html&quot;&gt;Шпаргалка. Использование Microsoft Script Control в приложениях - #2&lt;/a&gt;. Дмитрий Кузан &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://deeptown12.blogspot.com/2012/04/microsoft-script-control-3.html&quot;&gt;Шпаргалка. Использование Microsoft Script Control в приложениях - #3&lt;/a&gt;. Дмитрий Кузан &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://akella225.blogspot.com/2012/05/delphi.html&quot;&gt;Как я локализовал свое приложение на Delphi&lt;/a&gt;. Выбор инструмента для локализации. &lt;a href=&quot;https://plus.google.com/101747026044283655090&quot;&gt;Vasiliy Pupkin&lt;/a&gt;/Akella/X11 &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_4507.html&quot;&gt;Function Discovery API&lt;/a&gt;.&amp;#160; Я тут было озадачился вопросом, как программно отправить видео воспроизводится на ТВ по DLNA. Андрей Терехов &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#libs_author&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;libs_author&quot;&gt;Авторские работы&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2012/11/delphi-notes-splitter-v108.html&quot;&gt;Delphi Notes Splitter обновлён (v1.08)&lt;/a&gt; Николай Зверев. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphikingdom.ru/asp/viewitem.asp?catalogid=1444&quot;&gt;Компонент TDBComboBoxEx&lt;/a&gt;. &lt;a href=&quot;http://delphikingdom.ru/asp/users.asp?ID=7966&quot;&gt;Александр Чмиль&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphikingdom.ru/asp/viewitem.asp?catalogid=1443&quot;&gt;Компонент TMStringGrid&lt;/a&gt;. StringGrid с объединением ячеек, выравниванием текста, и редактором ячеек в виде ComboBox-а. &lt;a href=&quot;http://delphikingdom.ru/asp/users.asp?ID=7006&quot;&gt;Дамир &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphikingdom.ru/asp/viewitem.asp?catalogid=1442&quot;&gt;Парсер математических выражений. Быстрое вычисление выражений и массива выражений&lt;/a&gt;. &lt;a href=&quot;http://delphikingdom.ru/asp/users.asp?ID=1091&quot;&gt;Юрий Писарев&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphikingdom.ru/asp/viewitem.asp?catalogid=1441&quot;&gt;Продвинутые диалоговые окна&lt;/a&gt;. &lt;a href=&quot;http://delphikingdom.ru/asp/users.asp?ID=20825&quot;&gt;Павел Разбойников&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphi.frantic.im/ttracklabel&quot;&gt;TTrackLabel&lt;/a&gt;. Простой и изящный подход к реализации окна настроек. Александр Котлярский &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#libs_fm&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;libs_fm&quot;&gt;Firemonkey - обзоры компонентов&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://delphixe.ru/2012/01/firemonkey-%d0%ba%d0%be%d0%bc%d0%bf%d0%be%d0%bd%d0%b5%d0%bd%d1%82%d1%8b-%d0%bf%d0%b5%d1%80%d0%b2%d0%b0%d1%8f-%d0%bb%d0%b0%d1%81%d1%82%d0%be%d1%87%d0%ba%d0%b0/&quot;&gt;Первая ласточка: TMS Instrumentation Workshop &lt;/a&gt;. Александр Божко &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphixe.ru/2012/03/apesuite/&quot;&gt;Apesuite&lt;/a&gt;. Александр Божко &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphixe.ru/2012/04/tms-pack-for-firemonkey/&quot;&gt;TMS Pack for FireMonkey&lt;/a&gt;. Александр Божко &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphixe.ru/2012/05/fastreport-%d0%b4%d0%bb%d1%8f-firemonkey/&quot;&gt;FastReport для FireMonkey&lt;/a&gt;. Александр Божко &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/09/obzor-vozmozhnostej-komponenta-tms-grid-dlya-firemonkey-tmsfmxgrid/&quot;&gt;Обзор TMS Grid для FireMonkey (TMSFMXGrid).&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://keeper89.blogspot.com/2012/05/fastreports-for-firemonkey.html&quot;&gt;Вебинар FastReports for FireMonkey&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#tips&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;tips&quot;&gt;Полезные советы&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://alexander-bagel.blogspot.com/2012/12/api.html&quot;&gt;Нужны ли недокументированные API?&lt;/a&gt; Об оптимизации. &lt;a href=&quot;http://www.blogger.com/profile/03072586754182036553&quot;&gt;Александр (Rouse_) Багель&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/160455/&quot;&gt;Красивые disabled иконки «малой кровью»&lt;/a&gt;. Ярослав Черных &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/147575/&quot;&gt;Маленькие хитрости: автоматическое восстановление вида указателя курсора&lt;/a&gt;. Виктор Востриков &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://echmel.ru/2012/05/setting-cursor-dbgrid-position/&quot;&gt;Позиционирование курсора в центре DBGrid’a&lt;/a&gt;. Евгений Чмель. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphiway.ru/%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d1%84%d0%b5%d0%b9%d1%81-subwcrev-tortoisesvn/&quot;&gt;Работа в Delphi с интерфейсом SubWCRev программы TortoiseSVN&lt;/a&gt;. Kverde (блог DelphiWay) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://deeptown12.blogspot.com/2012/02/ole-olecontainer.html&quot;&gt;Полезняшки. Загрузка файла в БД в виде внедренного OLE-объекта без использование стандартного OleContainer&lt;/a&gt;. Дмитрий Кузан &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://deeptown12.blogspot.com/2012/02/devexpresscxvirtualverticalgrid.html&quot;&gt;Полезняшки: DevExpress.cxVirtualVerticalGrid как средство редактирование и отображения данных таблицы БД&lt;/a&gt;. Дмитрий Кузан &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/157783/&quot;&gt;Доступ к переменным Thread local storage (TLS) любого треда&lt;/a&gt;. Дмитрий (DCa) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/157777/&quot;&gt;Бесконечные генераторы значений на Delphi + Ассемблер&lt;/a&gt;. Дмитрий (DCa) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/163241/&quot;&gt;Расставляем точки над i в Delphi RAII&lt;/a&gt;. (&lt;a href=&quot;http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%B0_%D0%B5%D1%81%D1%82%D1%8C_%D0%B8%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F&quot;&gt;RAII – это&lt;/a&gt;) Иван Левашев &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/145140/&quot;&gt;Windows Sockets, IOCP и Delphi&lt;/a&gt;. способ массовой асинхронной работы с большим количеством сокетов с использованием I/O Completion Ports. Mr_Developer &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://entropiya-blog.ru/opredelenie-serijnogo-nomera-semnogo-nositelya.html&quot;&gt;Определение серийного номера съемного носителя&lt;/a&gt;. Источник: Блог Энтропия &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://entropiya-blog.ru/avtorizaciya-s-ispolzovaniem-semnogo-nositelya.html&quot;&gt;Авторизация с использованием съемного носителя&lt;/a&gt;. Источник: Блог Энтропия &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#transl&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;transl&quot;&gt;Переводы GunSmoker-а&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;Александр Алексеев (gunsmoker). &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.transl-gunsmoker.ru/2012/02/blog-post.html&quot;&gt;Некоторые папки двигать нельзя - и вам придётся научиться с этим жить&lt;/a&gt;. Это перевод &lt;a href=&quot;http://blogs.msdn.com/b/oldnewthing/archive/2010/08/06/10046812.aspx&quot;&gt;Some known folders cannot be moved, but others can, and you&#39;ll just have to accept that&lt;/a&gt;. Реймонд Чен. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.transl-gunsmoker.ru/2012/02/blog-post_18.html&quot;&gt;Как мне найти программу, которая держит этот файл?&lt;/a&gt; Это перевод &lt;a href=&quot;http://blogs.msdn.com/b/oldnewthing/archive/2012/02/17/10268840.aspx&quot;&gt;How do I find out which process has a file open?&lt;/a&gt; Реймонд Чен. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.transl-gunsmoker.ru/2012/02/blog-post_19.html&quot;&gt;Используется ли файл?&lt;/a&gt; Это перевод &lt;a href=&quot;http://blog.delphi-jedi.net/2010/11/14/is-file-in-use/&quot;&gt;Is File In Use&lt;/a&gt;. Christian Wimmer. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.transl-gunsmoker.ru/2012/03/windows.html&quot;&gt;Об окнах Windows&lt;/a&gt;. Это перевод &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms632597(VS.85).aspx&quot;&gt;About Windows&lt;/a&gt;. MSDN. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.transl-gunsmoker.ru/2012/04/windows.html&quot;&gt;Возможности окон Windows&lt;/a&gt;. Это перевод &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms632599(VS.85).aspx&quot;&gt;Window Features&lt;/a&gt;. MSDN. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.transl-gunsmoker.ru/2012/09/blog-post.html&quot;&gt;Наверняка вы думаете о сборке мусора неправильно&lt;/a&gt;. Это перевод &lt;a href=&quot;http://blogs.msdn.com/b/oldnewthing/archive/2010/08/09/10047586.aspx&quot;&gt;Everybody thinks about garbage collection the wrong way&lt;/a&gt;. Реймонд Чен. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.transl-gunsmoker.ru/2012/09/how-can-SIGINT-be-safely-delivered-on-the-main-thread.html&quot;&gt;Как безопасно отправить SIGINT в главный поток? Это перевод &lt;/a&gt;&lt;a href=&quot;http://blogs.msdn.com/b/oldnewthing/archive/2008/07/28/8781423.aspx&quot;&gt;How can SIGINT be safely delivered on the main thread?&lt;/a&gt; Реймонд Чен. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.transl-gunsmoker.ru/2012/09/what-does-an-invalid-handle-exception-in-LeaveCriticalSection-mean.html&quot;&gt;Что означает исключение Invalid Handle в LeaveCriticalSection?&lt;/a&gt; Это перевод &lt;a href=&quot;http://blogs.msdn.com/b/oldnewthing/archive/2006/12/11/1259599.aspx&quot;&gt;What does an invalid handle exception in LeaveCriticalSection mean?&lt;/a&gt; Реймонд Чен. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#web&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;web&quot;&gt;Работа с сетью&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/11/zagruzka-izobrazhenij-v-formate-multipartform-data-na-yandeks-fotki/&quot;&gt;Загрузка изображений в формате multipart/form-data на Яндекс.Фотки.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/11/synapse-rabota-s-vlozheniyami-v-pismax/&quot;&gt;Synapse: работа с вложениями в письмах.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/12/rabota-s-imap-v-synapse-1/&quot;&gt;Работа с IMAP в Synapse #1&lt;/a&gt;. Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/04/ispolzovanie-json-pri-rabote-s-google-api/&quot;&gt;Использование JSON при работе с Google API.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/04/parsing-json-v-delphi-pod-windows-i-macos/&quot;&gt;Парсинг JSON в Delphi под Windows и MacOS.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/04/synapse_webdav/&quot;&gt;Synapse: работа с WebDAV на примере Яндекс.Диска.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/05/primer-ispolzovaniya-perechislitelej-v-superobject/&quot;&gt;Пример использования перечислителей в SuperObject.&lt;/a&gt; Владислав Баженов. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.webdelphi.ru/2012/07/yandeks/&quot;&gt;API Яндекс.Диска: чтение списка ресурсов и скачивание файлов.&lt;/a&gt; Владислав Баженов. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#games&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;games&quot;&gt;GUI, GlScene и разработка игр на FreePascal/Delphi&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/153637/&quot;&gt;О разработке небольшой игры с помощью Lazarus&lt;/a&gt;. Александр (&lt;a href=&quot;http://habrahabr.ru/users/Corwal/&quot;&gt;Corwal&lt;/a&gt;) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.vr-online.ru/content/box2d-na-delphi-chast-1-vvedenie-5868&quot;&gt;Box2D на Delphi. Часть 1. Введение&lt;/a&gt;. Адаптированный к Delphi перевод мануала к физическому движку Box2D. Andrew Jacuk &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.vr-online.ru/content/box2d-na-delphi-chast-2-hello-world-5871&quot;&gt;Box2D на Delphi. Часть 2. Hello, World!&lt;/a&gt; Andrew Jacuk &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#lampogolovii&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;lampogolovii&quot;&gt;Lampogolovii о GUI и разработке игр&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Я включил в подборку только те посты, которые имеют отношение к Delphi. В блоге же автора можно найти и другие материалы. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://lampogolovii.blogspot.com/2012/05/gui.html&quot;&gt;Gui: использование анимированных кнопок&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://lampogolovii.blogspot.com/2012/05/gui-buttonsdemo.html&quot;&gt;Gui: ButtonsDemo&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://lampogolovii.blogspot.com/2012/05/blog-post.html&quot;&gt;Поговорим о дизайне игр?&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://lampogolovii.blogspot.com/2012/03/glscene.html&quot;&gt;Конкурс на GlScene: Бомбермен&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://lampogolovii.blogspot.com/2012/04/gui.html&quot;&gt;Gui: простая анимированная кнопка&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://lampogolovii.blogspot.com/2012/02/menumanager.html&quot;&gt;MenuManager, стартуем...&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://lampogolovii.blogspot.com/2012/12/blog-post.html&quot;&gt;Психология разработки: взлеты и падения...&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://lampogolovii.blogspot.com/2012/12/zengl.html&quot;&gt;ZenGL: введение - GL движок для кроссплатформенной (Linux, MacOs, iOs, Android, Windows) разработки игр на Lazarus&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#directx&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;directx&quot;&gt;DirectX&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_5432.html&quot;&gt;Getting Started with DirectWrite&lt;/a&gt;. Андрей Терехов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_5437.html&quot;&gt;DirectWrite: CustomTextRenderer, Hit-Test&lt;/a&gt;. Андрей Терехов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_5710.html&quot;&gt;Direct2D и слоистые окна. Дубль 2&lt;/a&gt;. Андрей Терехов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_5782.html&quot;&gt;Загрузка изображений в Direct2D&lt;/a&gt;. Андрей Терехов &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://teran.karelia.pro/articles/item_5548.html&quot;&gt;Олимпийские кольца&lt;/a&gt;. Для рисования используем &lt;a href=&quot;http://teran.karelia.pro/tags/Direct2D&quot;&gt;Direct2D&lt;/a&gt;, для анимации &lt;a href=&quot;http://teran.karelia.pro/tags/animation&quot;&gt;Windows Animation Manager&lt;/a&gt;. Для уменьшения размера исполняемого файла - реализуем программу без использования VCL. Андрей Терехов &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;a title=&quot;Ссылка на раздел&quot; href=&quot;#other&quot;&gt;#&lt;/a&gt; &lt;a name=&quot;other&quot;&gt;Другое&lt;/a&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://delphi.frantic.im/delphi-to-freepascal-on-mac-osx&quot;&gt;Из Delphi в FreePascal под Mac OSX&lt;/a&gt;. Александр Котлярский &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/company/it_dominanta/blog/147866/&quot;&gt;Обзор зарплат программистов Java/C++/C#/Delphi&lt;/a&gt;. рекрутинговая компания &lt;a href=&quot;http://www.it-dominanta.ru/&quot;&gt;IT-Доминанта&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/150943/&quot;&gt;Куда стоило бы развиваться Delphi вместо того, куда оно развивается сейчас&lt;/a&gt; (в комментариях &lt;s&gt;чудесный срач&lt;/s&gt; оживленная дискуссия). &lt;a href=&quot;http://habrahabr.ru/users/Nashev/&quot;&gt;Nashev&lt;/a&gt; (habrahabr) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://delphi.frantic.im/10-reasons-to-abandon-delphi&quot;&gt;10 причин перестать программировать на Delphi&lt;/a&gt;. Просто мысли в случайном порядке. Александр Котлярский &lt;/li&gt;    &lt;li&gt;Open Source проект на Delphi: &lt;a href=&quot;http://habrahabr.ru/post/142701/&quot;&gt;Домашняя электронная библиотека: MyHomeLib + FBD&lt;/a&gt;. Алексей Пеньков &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/146800/&quot;&gt;Расширяем функциональность клавиатуры&lt;/a&gt; с помощью Delphi 7. &lt;a name=&quot;OLE_LINK6&quot;&gt;&lt;/a&gt;&lt;a name=&quot;OLE_LINK5&quot;&gt;Александр (&lt;/a&gt;&lt;a href=&quot;http://habrahabr.ru/users/Corwal/&quot;&gt;Corwal&lt;/a&gt;) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/136841/&quot;&gt;Induc по-прежнему угроза для Delphi&lt;/a&gt;.&amp;#160; Денис (rst59, habrahabr) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.delphinotes.ru/2012/02/delphi-developer-certification.html&quot;&gt;Delphi Developer Certification&lt;/a&gt;. Николай Зверев. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://habrahabr.ru/post/158381/&quot;&gt;Интервью с CYBERMANIAC&lt;/a&gt; (автора Neo Sign 0f Misery, древней электронной книги “Теоретические основы крегинга”). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;   &lt;hr /&gt; В публикации использована фотография с сайта FreeDigitalPhotos.net. Автор: &lt;a href=&quot;http://www.freedigitalphotos.net/images/view_photog.php?photogid=2664&quot;&gt;Stuart Miles&lt;/a&gt;.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/5901941375881281017/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2013/03/luchshee-o-delphi-za-2012-god.html#comment-form' title='Комментарии: 15'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/5901941375881281017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/5901941375881281017'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2013/03/luchshee-o-delphi-za-2012-god.html' title='Лучшее в Delphi блогах за 2012 год'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihyphenhyphenq6YtyrkHilRsOHpniuo0HGxiJ4VKALo9GXYKgWgDJ5Md_et8TCzDKFzKoaoBdz030KH0zcms15agy5CltC6BW-o8Gfxn2l_jOVNvxv2___ZrShtu7XLFn_86s7G3QUMWFBMr5Suh4Y/s72-c?imgmax=800" height="72" width="72"/><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1724180200433302177.post-3845225249994146411</id><published>2012-09-21T03:56:00.001+03:00</published><updated>2013-12-16T21:58:15.297+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogroll"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="инструменты"/><category scheme="http://www.blogger.com/atom/ns#" term="эксперты"/><title type='text'>Revised Object Inspector для Delphi 2010-XE3 от Uwe Schuster. Обзор.</title><content type='html'>&lt;p&gt;Этот пост является укороченным переводом &lt;a title=&quot;Improved Object Inspector for Delphi&quot; href=&quot;http://www.bitcommander.de/blog/index.php/2012/01/01/oi-rev/&quot; target=&quot;_blank&quot;&gt;описания первой версии Продвинутого Инспектора Объектов из блога Uwe&lt;/a&gt;. &lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;Не так давно, коллега рассказал про &lt;a href=&quot;http://www.tdelphiblog.com/p/experts.html&quot; target=&quot;_blank&quot;&gt;расширение для Delphi&lt;/a&gt; замещающий стандартный инспектор объектов альтернативным, с поддержкой фильтра и функции любимых свойств. Пользуюсь этим расширением уже месяц в Delphi XE. Работает стабильно. &lt;/p&gt;  &lt;p&gt;На данный момент Revised Object Inspector поддерживает Delphi 2010, Delphi XE, XE2 и XE3. На 21 сентября 2012 года последней версией является Beta 6.&lt;/p&gt;  &lt;p&gt;Автор эксперта: Uwe Schuster. Uwe также является активным разработчиком &lt;a href=&quot;http://www.bitcommander.de/blog/index.php/category/delphisvn/&quot;&gt;Version Insight Plus&lt;/a&gt;, &lt;a href=&quot;http://www.bitcommander.de/blog/index.php/2012/05/09/modal-search-1/&quot;&gt;Modal Search Dialog expert&lt;/a&gt;, Platforms Expert, &lt;a href=&quot;http://www.bitcommander.de/blog/index.php/2012/07/29/comutils/&quot;&gt;IDE Compiler Utils&lt;/a&gt;, а также &lt;a href=&quot;http://jedivcs.sourceforge.net/&quot;&gt;Jedi Version Control System&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;См. также:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.bitcommander.de/blog/index.php/downloads/&quot;&gt;Страница загрузок в блоге Uwe&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.bitcommander.de/blog/index.php/category/ide/&quot;&gt;Все публикации об экспертах в блоге Uwe&lt;/a&gt;. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Вот так выглядит Revised Object Inspector. Отличия в закладке Favorites и строке фильтрации.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;Продвинутый Object Inspector&quot; border=&quot;0&quot; alt=&quot;Продвинутый Object Inspector&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrz05JePPXpTFCTkbQZ8YgqmjnezQAV5IwJxFDG3ubtOV2i_-mg8MEm3lkHOHZpkvq4fDhXZiYO4UdHy9W9QaHJY35H2liGBXrhtp_d5sUwySoaVG6purODopB1dCbjt_06XWI33mlYfA/?imgmax=800&quot; width=&quot;369&quot; height=&quot;342&quot; /&gt;&lt;/p&gt;  &lt;a name=&#39;more&#39;&gt;&lt;/a&gt;  &lt;p&gt;А вот стандартный Object Inspector в Delphi XE2:&lt;/p&gt;  &lt;p&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;Стандартный Object Inspector в Delphi XE2&quot; border=&quot;0&quot; alt=&quot;Стандартный Object Inspector в Delphi XE2&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwwopyEHNsh4EgLkdSjy_zy8nXQjr93v3OzCir1svJpcIyFrvokWv3FfSgWFqr4zgsF9NqkK2UScVaD47maRfwI2Pl0lng7nyDhMwso0JWLLzw8PipJ-PZId3Wxe91XzuYr7Sj7RfYUIo/?imgmax=800&quot; width=&quot;369&quot; height=&quot;341&quot; /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Фильтр позволяет искать свойства по строке. Фильтрация не чувствительна к регистру. Фильтр также учитывает дочерние свойства. Вот почему на следующей иллюстрации можно видеть свойство Font, так как у него есть дочернее свойство Style.&lt;/p&gt;  &lt;p&gt;Фильтрация в продвинутом инспекторе объектов:&lt;/p&gt;  &lt;p&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;Фильтр в инспекторе объектов в Delphi&quot; border=&quot;0&quot; alt=&quot;Фильтр в инспекторе объектов в Delphi&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ_RXkt1gsUI6mIHGEcTtxcrSYrDa6Po8X1m7t_8N2fD_rVldMOxC02H4ALxTAlFJ11z827VRDBd5rmHN0WeqxjTKpJ5CQcIHG-TbPcXAYghhH-OuJ0APMnlHCbXJUXxCImnm9fHbUsQ8/?imgmax=800&quot; width=&quot;369&quot; height=&quot;161&quot; /&gt;&lt;/p&gt;  &lt;p&gt;Фильтр позволяет использовать точку, при фильтрации. Например, можно ввести Font.Style, или даже t.Style.&lt;/p&gt;  &lt;p&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;Фильтр в инспекторе объектов в Delphi&quot; border=&quot;0&quot; alt=&quot;Фильтр в инспекторе объектов в Delphi&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhTbMlWfqV512QCloADlkOzMexPIsdJsIHJrcZVBejz2S2FDpaVqh0kyldXzJLkSxGnsBP9deLRVCxbiQPaW2VoCZxDKcFWOc0_Mq9qCwlsD6VfiqF447dRIAcn4wiuiLkDfL5RNe5-tI/?imgmax=800&quot; width=&quot;369&quot; height=&quot;92&quot; /&gt;&lt;/p&gt;  &lt;p&gt;Чтобы добавить свойство в Favorites, используйте пункт Add Favorite в контекстном меню инспектора объектов. Добавленные в Favorites свойства подсвечиваются в инспекторе зелёным цветом.&lt;/p&gt;  &lt;p&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;Favorites в Delphi Object Inspector&quot; border=&quot;0&quot; alt=&quot;Favorites в Delphi Object Inspector&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyDkheyeQ4PN-Rb9EiIsknfSnVnRu48G7F1DXLXLx8nzRAtg-59XtL0k__lUizfNdcGQGocIo6Dgg09W6c7u3flT_K4TL4IO07wq9ZRjhOLRMP0PK7C2jb7ROKzWhACdGRCV7E5KM9qWQ/?imgmax=800&quot; width=&quot;369&quot; height=&quot;374&quot; /&gt;&lt;/p&gt;  &lt;p&gt;Свойства, добавляемые в Favorites, по умолчанию не являются глобальными. Но если очистить название класса, то они станут глобальными. Обратите внимание, что частичные имена классов здесь не поддерживаются.&lt;/p&gt;  &lt;p&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;Add favorite в Delphi Object Inspector&quot; border=&quot;0&quot; alt=&quot;Add favorite в Delphi Object Inspector&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8JSqbsnkDl0s5BhN-5Oaq4IsbDBsNniu1VIcn3yTZjwMIlGP1EhbW_cBws_ByzOkacOZWoqRsUDKQtFWeEp8jd8ftfMvq1JaOC_93gyLxRsSirn9wmz0qrj_rOlKynx7hVcXWCsQkTLc/?imgmax=800&quot; width=&quot;344&quot; height=&quot;209&quot; /&gt;&lt;/p&gt;  &lt;p&gt;Если свойство было добавлено в Favorites случайно, вы можете его убрать с помощью команды “Remove Favorite” контекстного меню, на закладке Favorites.&lt;/p&gt;  &lt;p&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;Remove favorite в Delphi Object Inspector&quot; border=&quot;0&quot; alt=&quot;Remove favorite в Delphi Object Inspector&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7puVUYIcfMXrW-_b8AGbL86UMSOkvwqvPlgpuRJ7lSLTeK-mKNTswb6xeQMsx8No-eQVa9i2064g0H9Q_T1QN7YD6Vv8kW7m41sTXreExhoJRAYnWtZfFdlaNmr4tajgV_TxoJOSRK44/?imgmax=800&quot; width=&quot;369&quot; height=&quot;356&quot; /&gt;&lt;/p&gt;  &lt;p&gt;Диалог настроек продвинутого инспектора объектов можно открыть с помощью команды “Environment Options | Object Inspector”.&lt;/p&gt;  &lt;p&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;Настройки продвинутого инспектора объектов&quot; border=&quot;0&quot; alt=&quot;Настройки продвинутого инспектора объектов&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJVumoxtZp6GNr-h9-eFlwyVjpqG5SfpWDSWq7vRKTzC53zB8WALXS7SUkyH1GM647KMmrDi3QtIY9EJPnefUARyZg8eZlk9cFz4brsTEF9ux4MibdbbdtoFxr5n7tNWbOtHB_j3etPmc/?imgmax=800&quot; width=&quot;623&quot; height=&quot;456&quot; /&gt;&lt;/p&gt;  &lt;p&gt;И, отвечая на незаданный вопрос «можно ли получить исходный код эксперта», отвечу – нет, и более того, автор сообщил, что не собирается их открывать.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.bitcommander.de/blog/index.php/downloads/&quot;&gt;Скачать установщик можно в блоге Uwe&lt;/a&gt;. &lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://tdelphi.blogspot.com/feeds/3845225249994146411/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tdelphi.blogspot.com/2012/09/revised-object-inspector-obzor.html#comment-form' title='Комментарии: 17'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/3845225249994146411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1724180200433302177/posts/default/3845225249994146411'/><link rel='alternate' type='text/html' href='http://tdelphi.blogspot.com/2012/09/revised-object-inspector-obzor.html' title='Revised Object Inspector для Delphi 2010-XE3 от Uwe Schuster. Обзор.'/><author><name>Алексей Тимохин</name><uri>http://www.blogger.com/profile/11853041033911520876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrz05JePPXpTFCTkbQZ8YgqmjnezQAV5IwJxFDG3ubtOV2i_-mg8MEm3lkHOHZpkvq4fDhXZiYO4UdHy9W9QaHJY35H2liGBXrhtp_d5sUwySoaVG6purODopB1dCbjt_06XWI33mlYfA/s72-c?imgmax=800" height="72" width="72"/><thr:total>17</thr:total></entry></feed>