<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Альберт Эйнштейнов: заметки с тегом delphi</title>
<link>http://depperte.ru/blog/tags/delphi/</link>
<description>Альберт Эйнштейнов</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.3 (v4134)</generator>

<itunes:subtitle>Альберт Эйнштейнов</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Несколько подсказок для Delphi</title>
<guid isPermaLink="false">6</guid>
<link>http://depperte.ru/blog/all/neskolko-podskazok-dlya-delphi/</link>
<pubDate>Wed, 09 Sep 2015 02:05:24 +0500</pubDate>
<author></author>
<comments>http://depperte.ru/blog/all/neskolko-podskazok-dlya-delphi/</comments>
<description>
&lt;p&gt;Несколько замечательных подсказок при работе с Delphi IDE:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Чтобы вызвать список всех предупреждений в проекте (как при первой компиляции, или после билда, или после удаления всех dcu-файлов), нужно в меню Project выбрать меню Syntax Check. И все!&lt;/li&gt;
&lt;/ol&gt;
&lt;ol start="2"&gt;
&lt;li&gt;Иногда при компиляции появляется предупреждение следующего вида: Unit ’Vcl.FileCtrl’ is specific to a platform. Чтобы его убрать нужно в файле, на который ругается компилятор, после секции interface подставить вот такой хинт: {$WARN UNIT_PLATFORM OFF}.&lt;/li&gt;
&lt;/ol&gt;
&lt;ol start="3"&gt;
&lt;li&gt;Для уменьшения размера exe-файла можно в любом месте dpr-файла подставить хинт: {$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED}, предварительно подключив модуль Windows в секцию uses.&lt;/li&gt;
&lt;/ol&gt;
</description>
</item>

<item>
<title>Ошибка ORA-03113 при использовании ODAC и Variant</title>
<guid isPermaLink="false">9</guid>
<link>http://depperte.ru/blog/all/oshibka-ora-03113-pri-ispolzovanii-odac-i-variant/</link>
<pubDate>Mon, 15 Dec 2014 08:47:36 +0500</pubDate>
<author></author>
<comments>http://depperte.ru/blog/all/oshibka-ora-03113-pri-ispolzovanii-odac-i-variant/</comments>
<description>
&lt;p&gt;Неожиданно столкнулись с проблемой появления ошибки ORA-03113: end-of-file on communication channel при использовании компонентов ODAC в приложениях, написанных с помощью Delphi XE5. Режим Direct Mode, база данных Oracle 11g, вызов серверных хранимых процедур.&lt;/p&gt;
&lt;p&gt;По-русски, это означает, что была прервана связь между клиентом и сервером. Ошибку можно было исправить только переподключением. Непонятным оставался механизм ошибки и соответственно ее источник.&lt;/p&gt;
&lt;p&gt;После нескольких дней поиска выяснилось следующее. Среди входных параметров вызываемой хранимой процедуры был один параметр типа VARCHAR. В Delphi в этот параметр данные передавались из переменной типа Variant. Тип Variant удобен тем, что может принимать значение NULL, чего не могут типы Integer или String.&lt;/p&gt;
&lt;p&gt;Так вот, при передачи параметра в компонент TStoredProc тип Variant передавался без всяческих преобразований. Вот так:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;parameters.Add ( _provider.CreateParameter ( &amp;#039;datum_level_in&amp;#039;, section.DatumLevel ) );&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Как раз это и являлось причиной ошибки. По так и невыясненной причине вызов метода Execute напрочь валил текущую сессию.&lt;/p&gt;
&lt;p&gt;Достаточно было добавить VarToStr () и все заработало. Замечу, что такое поведение было замечено лишь в том случае, когда реципиентом был именно тип VARCHAR. С типом NUMBER такого не наблюдалось.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;parameters.Add ( _provider.CreateParameter ( &amp;#039;datum_level_in&amp;#039;, VarToStr ( section.DatumLevel ) ) );&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>Неработающие breakpoints в Delphi XE5</title>
<guid isPermaLink="false">12</guid>
<link>http://depperte.ru/blog/all/nerabotayuschie-breakpoints-v-delphi-xe5/</link>
<pubDate>Mon, 15 Sep 2014 09:06:23 +0500</pubDate>
<author></author>
<comments>http://depperte.ru/blog/all/nerabotayuschie-breakpoints-v-delphi-xe5/</comments>
<description>
&lt;p&gt;Иногда бывает так, что при отладке все breakpoints становятся зелеными, и где бы ты их не поставил, они всегда игнорируются.&lt;/p&gt;
&lt;p&gt;Лечится следующим образом:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;В дереве проектов жамкаем правой кнопкой мыши и выбираем пункт «Clean» или «Clean All».&lt;/li&gt;
&lt;li&gt;Далее пересобираем проект, делая «Build» (Shift+F9).&lt;/li&gt;
&lt;li&gt;Запускаем. Все работает.&lt;/li&gt;
&lt;/ol&gt;
</description>
</item>

<item>
<title>Проблема обновления файлов при развертывании (deployment) приложения на эмуляторе iOS (Delphi XE5)</title>
<guid isPermaLink="false">14</guid>
<link>http://depperte.ru/blog/all/problema-obnovleniya-faylov-pri-razvertyvanii-deployment-prilozh/</link>
<pubDate>Sat, 15 Feb 2014 09:52:49 +0500</pubDate>
<author></author>
<comments>http://depperte.ru/blog/all/problema-obnovleniya-faylov-pri-razvertyvanii-deployment-prilozh/</comments>
<description>
&lt;p&gt;Про разработку приложений iOS на Delphi XE5.&lt;/p&gt;
&lt;p&gt;В &lt;a href="http://alhymov.blogspot.ru/2014/02/testflightapp.html"&gt;блоге&lt;/a&gt; Павла Алхимова я задал такой вопрос:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;«Небольшая проблема с настройками deployment при запуске проекта на эмуляторе iOS. В проекте использую базу данных SQLite, создал файл, все хорошо, под Windows 7 работает. Пробую залить на эмулятор — все нормально, работает. Далее в ходе разработки немного меняю структуру БД (добавляю пару таблиц и представление), соответственно меняется сам файл БД. Запускаю под Windows 7 — все нормально, заливаю на эмулятор — не работает, точнее работает, но файл БД остался старым. То есть при очередном deployment он не подтянулся. Почему так? Есть какие-нибудь настройки, флаги или т. п. о которых я не знаю? Единственное, что пришло в голову — руками залезть в скретч-директорию эмулятора и почистить этот файл, тогда при следующем запуске он копируется.﻿»&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;И получил вот такой ответ от Павла:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;«Именно так, если старое приложение не было удалено. Новая база лежит в пакете приложения и пытается при старте приложения извлечься в песочницу — а место уже занято! Поэтому приложение либо удалять нужно, либо в самом приложении удалять меняющийся файл. Я, например, так и поступаю — сделал команду „обновить данные“, которая убивает файл данных и останавливает приложение. При следующем старте недостающий файл будет извлечён из пакета приложения и пойдёт в работу.﻿»&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Вот так.&lt;/p&gt;
</description>
</item>

<item>
<title>Перестала запускаться среда Delphi</title>
<guid isPermaLink="false">15</guid>
<link>http://depperte.ru/blog/all/perestala-zapuskatsya-sreda-delphi/</link>
<pubDate>Sat, 15 Feb 2014 09:40:51 +0500</pubDate>
<author></author>
<comments>http://depperte.ru/blog/all/perestala-zapuskatsya-sreda-delphi/</comments>
<description>
&lt;p&gt;Столкнулся с такой проблемой впервые при работе с Delphi XE5. При очередном открытии проекта неожиданно было выдано окно с вопросом: «Включить IDE при следующем запуске Delphi?». Совершенно не подумав и до конца не осознав нажал «нет». Хотя проверить, что было бы если выбрал «да», так и не удалось пока. В итоге Delphi перестала запускаться. Повисит в диспетчере задач секунд 10 и пропадает.&lt;/p&gt;
&lt;p&gt;Переустановки, repair и прочие танцы не помогают.&lt;/p&gt;
&lt;p&gt;Стал разбираться... Оказывается это проблема известна еще с версии 2010. Вот пост, который мне собственно и помог: &lt;a href="http://www.cyberforum.ru/delphi-beginners/thread64194.html"&gt;&lt;a href="http://www.cyberforum.ru/delphi-beginners/thread64194.html"&gt;http://www.cyberforum.ru/delphi-beginners/thread64194.html&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Там говорится о том, что достаточно удалить ключ реестра (это для версии 2010):&lt;br /&gt;
HKEY_CURRENT_USER\Software\CodeGear\BDS\7.0\Disabled IDE Packages\$(BDS)\Bin\delphide140.bpl&lt;/p&gt;
&lt;p&gt;Для версии XE5 ключ такой:&lt;br /&gt;
HKEY_CURRENT_USER\Software\Embarcadero\BDS\12.0\Disabled IDE Packages\&lt;/p&gt;
&lt;p&gt;Удалением одного ключа не обошлось. У меня для версии XE5 пришлось удалить весь раздел Disabled IDE Packages. На машинах, где таких ошибок не возникало такого раздела и нет вовсе.&lt;/p&gt;
</description>
</item>


</channel>
</rss>