<?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: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-24176048</id><updated>2012-02-17T03:02:39.728+02:00</updated><category term='RAD Studio 2009'/><category term='статьи'/><category term='Delphi 2010'/><category term='ASProtect'/><category term='Visual Studio'/><category term='Windows Vista'/><category term='Marco Cantu'/><category term='проекты'/><category term='Delphi Tiburon'/><category term='новостной агрегатор'/><category term='RTTI'/><category term='Delphi 2009'/><category term='DevExpress'/><category term='Tiburon'/><category term='Операторы'/><category term='юмор'/><category term='браузерыб домены'/><category term='Интернет'/><category term='юбилеи'/><category term='баги'/><category term='Unicode'/><category term='HTMViewer'/><category term='Chrome'/><category term='UAC'/><category term='Журналы'/><category term='Переводы'/><category term='Delphi'/><category term='отчеты'/><category term='hvgihkzd'/><category term='TurboPower'/><category term='Android'/><title type='text'>Alexander Bozhko Bold&amp;ECO blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>48</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-24176048.post-2711140407984326293</id><published>2011-06-05T23:30:00.003+03:00</published><updated>2011-06-06T00:02:25.848+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Новые проекты # 1</title><content type='html'>Еще один проект. Наверное, на сегодняшний день одно из самых успешных моих начинаний - &lt;a href="http://visualstudiofeeds.com/"&gt;Visual Studio Feeds.&lt;/a&gt; Чему посвящен этот сайт видно из названия. Идея все та же. Новостная лента блогов, или RSS агрегатор, если угодно.http://www.blogger.com/img/blank.gif&lt;br /&gt;Но за 4 с небольшим месяца удалось выйти на 600-650 хостов в сутки. И далеко не всегда это поисковый трафик. Около сотни человек в сутки приходят сюда "напрямую", очевидно "за новостями". Что не может не радовать.&lt;br /&gt;&lt;br /&gt;В настоящий момент в ленте свыше трех сотен блогов и их число продолжает расти.&lt;br /&gt;&lt;br /&gt;Тематика, как вы понимаете довольно широкая. Это может быть и &lt;span style="font-weight:bold;"&gt;.Net&lt;/span&gt; и разработка для &lt;span style="font-weight:bold;"&gt;WP7&lt;/span&gt;, и &lt;span style="font-weight:bold;"&gt;Azure&lt;/span&gt;, и &lt;span style="font-weight:bold;"&gt;SharePoint&lt;/span&gt;...&lt;br /&gt;&lt;br /&gt;Имеется и &lt;a href="http://visualstudiofeeds.com/index.php?option=com_blog_calendar&amp;view=blogcalendar&amp;Itemid=64"&gt;русскоязычный раздел&lt;/a&gt;. К сожалению, там пока что немного блогов. Но работы в этом направлении ведутся.&lt;br /&gt;&lt;br /&gt;Так, что для тех, кто хочет быть в курсе того, что нового в технологиях разработки от &lt;span style="font-weight:bold;"&gt;Microsoft&lt;/span&gt; - милости прошу...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-2711140407984326293?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/2711140407984326293/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=2711140407984326293' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/2711140407984326293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/2711140407984326293'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2011/06/1.html' title='Новые проекты # 1'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-7622070871749399739</id><published>2011-04-24T00:14:00.008+03:00</published><updated>2011-04-24T01:17:47.257+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='новостной агрегатор'/><category scheme='http://www.blogger.com/atom/ns#' term='проекты'/><title type='text'>Новые проекты # 0</title><content type='html'>С удивлением обнаружил, что данный блог до сих пор посещается. Что вызвало у меня двоякое чувство. &lt;br /&gt;&lt;br /&gt;С одной стороны это и хорошо. Написал нечто, что люди читают до сих пор. С другой - не очень. Больше года не писал-то. А, как выяснилось, в комментариях к постам люди меня о чем-то спрашивали... И даже устраивали между собой дискуссии. Увы, не увидел, не прочел, не ответил.&lt;br /&gt;&lt;br /&gt;Еще раз напоминаю, что &lt;a href="http://delphi2010.ru/"&gt;мой блог, посвященный &lt;span style="font-weight:bold;"&gt;Delphi &lt;/span&gt;переехал&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;А поскольку сюда, все же кто-то заходит, есть повод рассказать о своих новых проектах.&lt;br /&gt;&lt;br /&gt;Их у меня появилось довольно много. Думаю, по одному на пост, будет нормально.&lt;br /&gt;&lt;br /&gt;Здесь я упоминал о попытке создать новостной агрегатор, посвященный Google Wave. Увы, Google Wave не оправдал ожидания разработчиков. И Google Wave Feeds, просто перестал пополняться новостями. Я решил отказаться от него полностью, и даже предложил домен одному знакомому SEO специалисту. На что он мне сказал, что сайт не плохой, и разбрасываться двухлетними доменами, да еще и с какими-то пузомерками не следует. Англоязычный трафик зарабатывается не так уж и просто.&lt;br /&gt;&lt;br /&gt;Подумав над его словами, я решил поступить примерно так, как поступил Google. А именно переориентировать сайт в сторону &lt;span style="font-weight:bold;"&gt;Android&lt;/span&gt;. И хотя домен немного и не соответствует названию, думаю проект получился интересный. А дабы не возникало сомнений относительно контента, назвал я его &lt;a href="http://googlewavefeeds.com/"&gt;Android feeds&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Суть все та же. Практически в реальном режиме времени, 1 раз в 15 минут, проверяются RSS каналы блогов, посвященных &lt;span style="font-weight:bold;"&gt;Android&lt;/span&gt;. Заголовки новых постов публикуются на сайте.&lt;br /&gt;&lt;br /&gt;В данный момент активно наполняется &lt;a href="http://googlewavefeeds.com/rusblogs.html"&gt;русскоязычный раздел&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Списки блогов находятся &lt;a href="http://googlewavefeeds.com/ilinks.html"&gt;здесь&lt;/a&gt;. Если вы знаете интересные блоги по теме, не сочтите за труд мне сообщить. А если проект вам понравился и вы изыщите возможность поставить на него ссылочку - буду крайне признателен. Признательность может быть выражена в виде постового, временной сквозной ссылки или ценного подарка - лицензии на &lt;a href="http://litexsoft.com/"&gt;маленькую программу&lt;/a&gt;, написанную собственными руками (О ней я расскажу в одном из следующих постов). &lt;br /&gt;&lt;br /&gt;Кстати, с момента запуска &lt;a href="http://www.delphifeeds.ru/"&gt;DelphiFeeds.ru&lt;/a&gt; я довольно серьезно поднаторел в создании новостных агрегаторов. Теперь собирать новости с 200 - 300 блогов не проблема. И сайт не валится и блоги не путаются. Пришлось даже написать программу и пару PHP скриптов для этой цели.&lt;br /&gt;&lt;br /&gt;Но об этом я расскажу в следующий раз.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-7622070871749399739?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/7622070871749399739/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=7622070871749399739' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/7622070871749399739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/7622070871749399739'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2011/04/0.html' title='Новые проекты # 0'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-4289239276868076526</id><published>2010-01-30T02:14:00.001+02:00</published><updated>2010-01-30T02:20:38.864+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='DevExpress'/><category scheme='http://www.blogger.com/atom/ns#' term='Интернет'/><category scheme='http://www.blogger.com/atom/ns#' term='отчеты'/><title type='text'>Отчет. Январь 2010.</title><content type='html'>&lt;p&gt;Так уж получилось, что &lt;a href="http://mda-delphi.blogspot.com" target="_blank"&gt;http://mda-delphi.blogspot.com&lt;/a&gt; стал блогом о &lt;a href="http://delphi2010.ru/" target="_blank"&gt;блоге&lt;/a&gt;. А заодно и &amp;quot;вестником проекта &lt;a href="http://delphifeeds.ru" target="_blank"&gt;DelphiFeeds.Ru&lt;/a&gt;&amp;quot;.&lt;/p&gt;  &lt;p&gt;За сим, очередная подборка новостей.&lt;/p&gt;  &lt;p&gt;1. Уступая многочисленным пожеланиям, мы изменили дизайн &lt;a href="http://delphifeeds.ru" target="_blank"&gt;DelphiFeeds.Ru&lt;/a&gt;. Смотрите оценивайте. Все пожелания фиксируются и потихоньку исполняются. &lt;/p&gt;  &lt;p&gt;2. Результаты опроса о &lt;a href="http://www.delphifeeds.ru/index.php?option=com_poll&amp;amp;id=15:vip2010" target="_blank"&gt;наиболее значимом нововведении в Delphi 2010&lt;/a&gt;. И, соответственно, &lt;a href="http://www.delphifeeds.ru/index.php?option=com_poll&amp;amp;id=16:dver" target="_blank"&gt;новый опрос&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;3. Наконец-то дошли руки, и я изменил дизайн своего &lt;a href="http://delphi2010.ru/" target="_blank"&gt;Delphi блога&lt;/a&gt;. Все равно это не совсем то, что я хочу. Но руками править темы - у меня просто нет времени.&lt;/p&gt;  &lt;p&gt;4. Перевод &lt;a href="http://delphi2010.ru/?p=163" target="_blank"&gt;цикла статей Роберта Лава&lt;/a&gt; хотя и медленно, но продвигается. 8 из 11 опубликованных статей переведено. Вероятно, по окончанию процесса придется их вычитать. К сожалению, не хватает времени попробовать это все на практике. Зато появилась идея для собственного развернутого примера, который бы на пальцах позволил бы сравнить трудоемкость получения одного и того же результата в &lt;strong&gt;Delphi 2010&lt;/strong&gt; и, скажем, &lt;strong&gt;Delphi 2009. &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;5. В скором времени планирую выложить давно обещанную сагу о создании нового интерфейса для старого проекта. Для тех, кто не в курсе,&amp;#160; напомню... Мои работодатели приняли решение &amp;quot;немного оживить проект&amp;quot;. Естественно, в таких случаях, простейшим вариантом является &amp;quot;прикрутить&amp;quot; Ribbon интерфейс и скины. Было принято решение для этой цели &lt;a href="http://delphi2010.ru/?page_id=270" target="_blank"&gt;купить DevExpress&lt;/a&gt;. Вот чем все это закончилось я и собираюсь написать.&lt;/p&gt;  &lt;p&gt;6. Попал под пагубное влияние &lt;a href="http://www.tdelphiblog.com" target="_blank"&gt;Алексея&lt;/a&gt; и &lt;a href="http://www.webdelphi.ru" target="_blank"&gt;Влада&lt;/a&gt;, в связи с чем решил перевести процесс блогинга на, так сказать,&amp;#160; &amp;quot;научную основу&amp;quot;. Посмотрим, чем все это обернется...&lt;/p&gt;  &lt;p&gt;7. Увлекшись работой над &lt;strong&gt;Delphifeeds&lt;/strong&gt;, решил параллельно запустить несколько аналогичных проектов, работающих на том же принципе. С одной стороны, на них можно обкатывать свежие идеи, пробовать плагины и т.д. С другой стороны - А может из них вырастет что-то толковое. Чуть позже я представлю эти проекты.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4ef8823a-bd6b-4c05-8ada-497299317139" class="wlWriterSmartContent"&gt;Technorati Теги: &lt;a href="http://technorati.com/tags/Delphi" rel="tag"&gt;Delphi&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Delphi%202010" rel="tag"&gt;Delphi 2010&lt;/a&gt;,&lt;a href="http://technorati.com/tags/%d0%ba%d1%83%d0%bf%d0%b8%d1%82%d1%8c%20DevExpress" rel="tag"&gt;купить DevExpress&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-4289239276868076526?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/4289239276868076526/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=4289239276868076526' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/4289239276868076526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/4289239276868076526'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2010/01/2010.html' title='Отчет. Январь 2010.'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-7333119234462957268</id><published>2009-11-15T03:41:00.003+02:00</published><updated>2009-12-15T02:27:39.971+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='баги'/><title type='text'>DelphiFeeds.ru запущен в тестовом режиме</title><content type='html'>&lt;p&gt;В тестовом режиме запущен сайт &lt;a title="http://www.delphifeeds.ru/" href="http://www.delphifeeds.ru/"&gt;http://www.delphifeeds.ru/&lt;/a&gt;. Русскоязычный аналог DelphiFeeds.com.&lt;/p&gt;  &lt;p&gt;На текущий момент собираются RSS ленты с десяти сайтов, и еще с трех - в ручном режиме.&lt;/p&gt;  &lt;p&gt;Предложения, пожелания, вопросы можно оставить здесь: &lt;a title="http://www.delphifeeds.ru/index.php/feed" href="http://www.delphifeeds.ru/index.php/feed"&gt;http://www.delphifeeds.ru/index.php/feed&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;    &lt;br /&gt;Вы можете поддержать проект, разместив у себя в блоге кнопку:    &lt;br /&gt;    &lt;br /&gt;&lt;a title="DelphiFeeds.ru - Все Delphi-блоги Рунета" href="http://www.delphifeeds.ru/"&gt;&lt;img height="31" alt="DelphiFeeds.ru - Все Delphi-блоги Рунета" src="http://www.delphifeeds.ru/images/stories/baner8.png" width="81" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;a href=&amp;quot;&lt;a href="http://www.delphifeeds.ru/""&gt;http://www.delphifeeds.ru/&amp;quot;&lt;/a&gt; title=&amp;quot;DelphiFeeds.ru - Все Delphi-блоги Рунета&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;&lt;a href="http://www.delphifeeds.ru/images/stories/baner8.png""&gt;http://www.delphifeeds.ru/images/stories/baner8.png&amp;quot;&lt;/a&gt; alt=&amp;quot;DelphiFeeds.ru - Все Delphi-блоги Рунета&amp;quot; width=&amp;quot;81&amp;quot; height=&amp;quot;31&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-7333119234462957268?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/7333119234462957268/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=7333119234462957268' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/7333119234462957268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/7333119234462957268'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2009/11/delphifeedsru.html' title='DelphiFeeds.ru запущен в тестовом режиме'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-6877927208576891914</id><published>2009-10-07T02:06:00.001+03:00</published><updated>2009-10-07T02:06:24.209+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='RTTI'/><category scheme='http://www.blogger.com/atom/ns#' term='Переводы'/><title type='text'>Обновления на блоге</title><content type='html'>&lt;h4&gt;&lt;a href="http://delphi2010.ru/?p=142"&gt;Delphi 2010. Что нового? #5 &lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Изменения в дебаггере.&lt;/p&gt;  &lt;h4&gt;&lt;a href="http://delphi2010.ru/?p=155"&gt;Смесь бульдога с носорогом &lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;о переводе Delphi проекта на DevExpress.&lt;/p&gt;  &lt;h4&gt;&lt;a href="http://delphi2010.ru/?p=163"&gt;Delphi 2010. RTTI и атрибуты &lt;/a&gt;&lt;/h4&gt; Думаю, что в рамках обзора новых возможностей Delphi 2010 будет уместно привести перевод &lt;a href="http://robstechcorner.blogspot.com/2009/09/so-what-is-rtti-rtti-is-acronym-for-run.html"&gt;материалов &amp;quot;из первых рук&amp;quot;&lt;/a&gt;.  &lt;h4&gt;&lt;a href="http://delphi2010.ru/?p=166"&gt;Delphi 2010 RTTI &amp;#8211; Основы. &lt;/a&gt;&lt;/h4&gt; Перевод&lt;a href="http://robstechcorner.blogspot.com/2009/09/delphi-2010-rtti-basics.html"&gt; первой части обзора&lt;/a&gt; новых возможностей RTTI системы в Delphi 2010.    &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-6877927208576891914?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/6877927208576891914/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=6877927208576891914' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/6877927208576891914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/6877927208576891914'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2009/10/blog-post.html' title='Обновления на блоге'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-4939122851594160711</id><published>2009-09-11T00:07:00.001+03:00</published><updated>2009-09-11T00:07:59.287+03:00</updated><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='Delphi 2010'/><title type='text'>Delphi 2010. Что нового? #3, #4</title><content type='html'>&lt;p&gt;&lt;a href="http://delphi2010.ru/?p=135" target="_blank"&gt;Часть 4&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://delphi2010.ru/?p=124" target="_blank"&gt;Часть 3&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-4939122851594160711?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/4939122851594160711/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=4939122851594160711' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/4939122851594160711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/4939122851594160711'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2009/09/delphi-2010-3-4.html' title='Delphi 2010. Что нового? #3, #4'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-5354431071849401358</id><published>2009-08-14T04:30:00.001+03:00</published><updated>2009-08-14T04:30:10.365+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi 2010'/><title type='text'>Delphi 2010. Что нового? #2</title><content type='html'>&lt;p&gt;Изменений в IDE новой версии Delphi достаточно много. Хотя большинство из них косметиеские, возможно, о большинстве из них не стоит и упоминать. И, тем не менее, есть среди них и полезные вещи.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://delphi2010.ru/?p=110" target="_blank"&gt;Читать дальше...&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-5354431071849401358?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/5354431071849401358/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=5354431071849401358' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/5354431071849401358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/5354431071849401358'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2009/08/delphi-2010-2.html' title='Delphi 2010. Что нового? #2'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-9015419743794284298</id><published>2009-08-13T03:51:00.001+03:00</published><updated>2009-08-13T03:51:59.696+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi 2010'/><title type='text'>Delphi 2010. Что нового? #1</title><content type='html'>&lt;p&gt;К сожалению, явно не хватает времени плотно потестить бету. Но все же, ознакомиться с нововведениями очередной версии Delphi - дело святое.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://delphi2010.ru/?p=94#more-94" target="_blank"&gt;Постараюсь по порядку.&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-9015419743794284298?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/9015419743794284298/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=9015419743794284298' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/9015419743794284298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/9015419743794284298'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2009/08/delphi-2010-1.html' title='Delphi 2010. Что нового? #1'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-1831558727474255727</id><published>2009-08-06T03:52:00.001+03:00</published><updated>2009-08-06T03:52:37.444+03:00</updated><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='Delphi 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Переводы'/><title type='text'>Обновления в блоге</title><content type='html'>&lt;p&gt;&lt;a href="http://delphi2010.ru/?p=83" target="_blank"&gt;Переопределение визуальных компонентов&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Немного собственных наблюдений.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://delphi2010.ru/?p=87"&gt;Использование Microsoft Bing API в Delph&lt;/a&gt;i&lt;/p&gt;  &lt;p&gt;Перевод статьи.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://delphi2010.ru/?p=92" target="_blank"&gt;Дата выхода Delphi 2010&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Официальная информация от Embarcadero&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-1831558727474255727?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/1831558727474255727/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=1831558727474255727' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/1831558727474255727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/1831558727474255727'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2009/08/blog-post.html' title='Обновления в блоге'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-2431197921771138919</id><published>2009-07-22T04:19:00.000+03:00</published><updated>2009-07-22T04:21:32.817+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='статьи'/><category scheme='http://www.blogger.com/atom/ns#' term='Переводы'/><title type='text'>Фреймы, как визуальные компоненты, изменение наследования</title><content type='html'>&lt;p&gt;Фреймы в Delphi&amp;#160; - интересная штука, которая может создать проблемы &amp;quot;на ровном месте&amp;quot;. Попытка перевода &lt;a href="http://wiert.wordpress.com/2009/07/17/delphi-frames-as-visual-components-changing-your-inheritance/#"&gt;статьи&lt;/a&gt; на эту тему.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://delphi2010.ru/?p=71" target="_blank"&gt;http://delphi2010.ru/?p=71&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-2431197921771138919?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/2431197921771138919/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=2431197921771138919' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/2431197921771138919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/2431197921771138919'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2009/07/blog-post_22.html' title='Фреймы, как визуальные компоненты, изменение наследования'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-6646611258653234354</id><published>2009-07-18T10:59:00.000+03:00</published><updated>2009-07-18T11:01:10.457+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Журналы'/><title type='text'>Журналы, посвященные Delphi…</title><content type='html'>&lt;p&gt;Небольшой обзор Delphi прессы. И несколько сумбурные мысли&amp;#160; по этому поводу...&lt;/p&gt;  &lt;p&gt;&lt;a href="http://delphi2010.ru/?p=65" target="_blank"&gt;Читать полный текст...&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-6646611258653234354?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/6646611258653234354/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=6646611258653234354' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/6646611258653234354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/6646611258653234354'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2009/07/delphi_18.html' title='Журналы, посвященные Delphi…'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-5695731194906441859</id><published>2009-07-03T22:53:00.001+03:00</published><updated>2009-07-03T22:53:51.227+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi 2010'/><title type='text'>Будущее Delphi</title><content type='html'>&lt;p&gt;Третьего дня мне попалась на глаза &lt;a href="http://www.devia.be/news/article/the-future-of-delphi-looks-brighter-than-ever-before/"&gt;интересная статья&lt;/a&gt; - отчет о выступлении Дэвида И (David I) в Бельгии. &lt;a href="http://delphi2010.ru/?p=48" target="_blank"&gt;Вот попытка ее перевода&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-5695731194906441859?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/5695731194906441859/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=5695731194906441859' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/5695731194906441859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/5695731194906441859'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2009/07/delphi.html' title='Будущее Delphi'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-2542889603805834482</id><published>2009-07-03T22:41:00.001+03:00</published><updated>2009-07-03T22:41:04.367+03:00</updated><title type='text'>Переезд</title><content type='html'>&lt;p&gt;Решил я перевести свой блог на собственный хостинг и домен.&lt;/p&gt;  &lt;p&gt;К тому же домен безхозный лежал так хорошо, вот я его и подобрал.&lt;/p&gt;  &lt;p&gt;Новый адрес блога: &lt;a href="http://delphi2010.ru/" target="_blank"&gt;http://delphi2010.ru/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Здесь же я буду некоторое время давать линки на посты в новом блоге.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-2542889603805834482?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/2542889603805834482/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=2542889603805834482' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/2542889603805834482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/2542889603805834482'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2009/07/blog-post.html' title='Переезд'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-7271903965616927546</id><published>2009-06-30T03:39:00.001+03:00</published><updated>2009-06-30T03:39:07.769+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Marco Cantu'/><title type='text'>Delphi 2009 Handbook бесплатно.</title><content type='html'>&lt;p&gt;&lt;strike&gt;&lt;/strike&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.marcocantu.com/"&gt;Марко Кэнту&lt;/a&gt;, автор известных книг Mastering Delphi, в свое время жаловался, что его последняя книга, Delphi 2009 Handbook разошлась по файлообменникам. Он ее лично видел на Рапиде. Теперь ее можно получить бесплатно. Для этого следует просто посмотреть, что из себя представляет RAD Studio 2009 (это для тех, кто еще ее не видел :) ).&lt;/p&gt;  &lt;p&gt;Рекомендую.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://downloads.embarcadero.com/free/rad_studio"&gt;Скачайте&lt;/a&gt; &lt;a href="http://downloads.embarcadero.com/free/rad_studio"&gt;RAD Studio 2009 trial&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Установите и зарегистрируйте триал&lt;/li&gt;    &lt;li&gt;Скачайте&lt;a href="http://cc.embarcadero.com/item/26311"&gt; the Delphi 2009 Handbook&lt;/a&gt; (линк станет доступен после установки Rad Studio 2009) &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://edn.embarcadero.com/article/39629"&gt;Источник&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-7271903965616927546?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/7271903965616927546/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=7271903965616927546' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/7271903965616927546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/7271903965616927546'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2009/06/delphi-2009-handbook.html' title='Delphi 2009 Handbook бесплатно.'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-8017370476315611235</id><published>2009-04-30T17:53:00.002+03:00</published><updated>2009-04-30T17:59:41.404+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='ASProtect'/><title type='text'>ASProtect и Delphi 2009</title><content type='html'>&lt;p&gt;В принципе все оказалось довольно не сложно.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://aspack.com/asprotectske.aspx"&gt;ASProtect&lt;/a&gt; вполне нормально работает с Delphi 2009. Естественно, нужно просто делать преобразование строк при вызове ASProtect API&amp;#160; функций.&lt;/p&gt;  &lt;p&gt;Вот преобразованная процедура из стандартного примера:&lt;pre class="delphi" style="font-family:monospace;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;procedure&lt;/span&gt; TfrmRegKey&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;btnRegOkClick&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;Sender&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;TObject&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #808080; font-style: italic;"&gt;//  If CheckKeyAndDecrypt( PChar(eCode.Text), PChar(eName.Text), True ) then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #808080; font-style: italic;"&gt;// Для Delphi 2009 будет так:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;If&lt;/span&gt; CheckKeyAndDecrypt&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;PChar&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000066; font-weight: bold;"&gt;ansistring&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;eCode&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Text&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;PChar&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000066; font-weight: bold;"&gt;ansistring&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;eName&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Text&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;True&lt;/span&gt; &lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;then&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #000000; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;    MessageBox&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;Handle&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;'Thank you for your registration!'&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;'Registration'&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; MB_ICONINFORMATION&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #000066;"&gt;Close&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #000000; font-weight: bold;"&gt;end&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;else&lt;/span&gt;&lt;br /&gt;    MessageBox&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;Handle&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;'Key is not valid, please contact manufacture!'&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;'Registration'&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; MB_ICONWARNING&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/pre&gt;  &lt;p&gt;К слову, месяц назад вышел ASProtect SKE 2.5 Release. Так, что слухи о том, что продукт умер – преувеличены.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Improved map-files parsing &lt;/li&gt;    &lt;li&gt;Various Help file corrections &lt;/li&gt;    &lt;li&gt;Fixed application termination instead of displaying Trial Reminder if no trial counters have been used &lt;/li&gt;    &lt;li&gt;Fixed aspr_ide crash under Delphi IDE.&lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-8017370476315611235?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/8017370476315611235/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=8017370476315611235' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/8017370476315611235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/8017370476315611235'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2009/04/asprotect-delphi-2009.html' title='ASProtect и Delphi 2009'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-9148845185593883660</id><published>2009-04-04T03:43:00.002+03:00</published><updated>2009-04-04T03:48:05.602+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='юмор'/><title type='text'>Благими намерениями</title><content type='html'>В одном из форумов вычитал...&lt;br /&gt;&lt;blockquote&gt;Подскажите компонент для работы с фискальными кассовыми устройствами (IO). Желательно с сырцами. Спасибо.&lt;/blockquote&gt;&lt;br /&gt;Тут же захотелось попросить компонент для посадки льва в клетку.&lt;br /&gt;Хотя, может действительно есть и такие компоненты...&lt;br /&gt;Но по -моему, подобные посты ни что иное, как нормальная идея, доведенная до абсурда.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-9148845185593883660?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/9148845185593883660/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=9148845185593883660' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/9148845185593883660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/9148845185593883660'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2009/04/blog-post.html' title='Благими намерениями'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-4169220014454954747</id><published>2009-03-15T13:05:00.020+02:00</published><updated>2009-04-30T18:56:25.238+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='UAC'/><title type='text'>Использование Vista UAC в Delphi: Часть 3</title><content type='html'>&lt;p&gt;Это заключительная часть серии из трех частей о UAC и Delphi. &lt;br /&gt;Перейти к части 1&lt;br /&gt;Перейти к части 2&lt;/p&gt;  &lt;p&gt;Здесь я затрону наиболее интересные подходы к обеспечению подлинного UAC соответствия – в том виде, в каком вероятно, следует реализовывать большинство Vista-совместимых приложений. &lt;/p&gt;  &lt;p&gt;Повышение прав по запросу с использованием COM Elevation Moniker&lt;/p&gt;&lt;p&gt;Первая вещь, которую в которой вы должны быть уверены, это то, что исполняемый файл приложения содержит UAC манифест. Манифест, практически идентичный тому, который вы могли видеть в части 2, с одним, но очень важным отличием: атрибут requestedExecutionLevel должен иметь значение &amp;quot;&lt;b&gt;asInvoker&lt;/b&gt;&amp;quot;:&lt;/p&gt;  &lt;pre class="delphi" style="font-family:monospace;"&gt;&lt;ol&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&amp;lt;?xml version&lt;span style="color: #000066;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: #0000ff;"&gt;1.0&lt;/span&gt;&amp;quot; encoding&lt;span style="color: #000066;"&gt;=&lt;/span&gt;&amp;quot;UTF&lt;span style="color: #000066;"&gt;-&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;8&lt;/span&gt;&amp;quot; standalone&lt;span style="color: #000066;"&gt;=&lt;/span&gt;&amp;quot;yes&amp;quot;?&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&amp;lt;assembly xmlns&lt;span style="color: #000066;"&gt;=&lt;/span&gt;&amp;quot;urn&lt;span style="color: #000066;"&gt;:&lt;/span&gt;schemas&lt;span style="color: #000066;"&gt;-&lt;/span&gt;microsoft&lt;span style="color: #000066;"&gt;-&lt;/span&gt;com&lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;asm&lt;/span&gt;&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;v1&lt;/span&gt;&amp;quot; manifestVersion&lt;span style="color: #000066;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: #0000ff;"&gt;1.0&lt;/span&gt;&amp;quot;&amp;gt; &lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &amp;lt;assemblyIdentity&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    version&lt;span style="color: #000066;"&gt;=&lt;/span&gt;&amp;quot;1&lt;span style="color: #000066;"&gt;.&lt;/span&gt;0&lt;span style="color: #000066;"&gt;.&lt;/span&gt;0&lt;span style="color: #000066;"&gt;.&lt;/span&gt;0&amp;quot;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    processorArchitecture&lt;span style="color: #000066;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: #000066;"&gt;*&lt;/span&gt;&amp;quot;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    name&lt;span style="color: #000066;"&gt;=&lt;/span&gt;&amp;quot;UACAwareApplication&amp;quot;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    &lt;span style="color: #000000; font-weight: bold;"&gt;type&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt;&amp;quot;win32&amp;quot;&lt;span style="color: #000066;"&gt;/&lt;/span&gt;&amp;gt; &lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &amp;lt;trustInfo xmlns&lt;span style="color: #000066;"&gt;=&lt;/span&gt;&amp;quot;urn&lt;span style="color: #000066;"&gt;:&lt;/span&gt;schemas&lt;span style="color: #000066;"&gt;-&lt;/span&gt;microsoft&lt;span style="color: #000066;"&gt;-&lt;/span&gt;com&lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;asm&lt;/span&gt;&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;v3&lt;/span&gt;&amp;quot;&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    &amp;lt;security&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      &amp;lt;requestedPrivileges&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;        &amp;lt;requestedExecutionLevel level&lt;span style="color: #000066;"&gt;=&lt;/span&gt;&amp;quot;asInvoker&amp;quot;&lt;span style="color: #000066;"&gt;/&lt;/span&gt;&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      &amp;lt;&lt;span style="color: #000066;"&gt;/&lt;/span&gt;requestedPrivileges&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    &amp;lt;&lt;span style="color: #000066;"&gt;/&lt;/span&gt;security&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &amp;lt;&lt;span style="color: #000066;"&gt;/&lt;/span&gt;trustInfo&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&amp;lt;&lt;span style="color: #000066;"&gt;/&lt;/span&gt;assembly&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Этот манифест заставляет Vista назначить процессу привилегии по умолчанию при запуске приложения. Если в этот момент уровень доступа более низким, приложение будет вынуждено запрашивать повышение привилегий, каждый раз, когда пользователь выполняет действия, требующие административных привилегий. Это именно то, чего мы пытались добиться ранее.&lt;/p&gt;&lt;p&gt;Прежде чем продолжить, я объясню, как повышение привилегий работает изнутри…&lt;/p&gt;&lt;p&gt;Когда процесс стартует, ему присваивается уровень доступа Windows, который контролирует то, что этот процесс может или не может сделать, с некоторыми объектами, такими как файлы и каталоги, имеющими списки управления доступом (Access Control Lists или ACL's, для краткости) к себе. Что здесь важно, так это то, что уровень доступа, который присваивается фактически единожды, в момент запуска процесса, не может быть изменен на более поздних этапах жизни процесса. Следовательно, повышение привилегий, возможно одним единственным способом - порождением нового процесса с более высоким уровнем привилегий. Зная об этом, менее требовательные приложения, которые не нуждаются в использовании сложных состояний пользовательского интерфейса, могут просто перезапускать себя в админском режиме и работать.&lt;/p&gt;&lt;p&gt;Для большинства приложений, однако, это не приемлемо, потму, что перезапуск обычно означает длительную паузу и сложности, связанные с сохранением и восстановлением состояний пользовательского интерфейса.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Вместо этого, есть другое решение для таких случаев. Код приложения может быть разбит на две части – не привилегированный код размещается в основном исполняемом файле, в то время, как код, требующий привилегий выносится в отдельную dll, оформленную как один или несколько COM объектов. COM объекты могут вызываться COM посредствам Elevation Moniker в контексте выделенного COM-сервера, который и повышает привилегии.&lt;/p&gt;&lt;p&gt;Довольно теории. Выполним некоторые действия.&lt;/p&gt;&lt;p&gt;Здесь мы должны сделать следующее:&lt;/p&gt;&lt;p&gt;написать dll, которая будет загружаться выделенным COM – сервером;&lt;/p&gt;&lt;p&gt;добавить COM-объект, реализующий функциональность, требующую привилегий; &lt;/p&gt;&lt;p&gt;добавить COM class factory, которая будет использоваться для создания экземпляра COM объекта и регистрации библиотеки, и&lt;/p&gt;&lt;p&gt;написать какой-то код для вызова COM объекта из главного исполняемого файла, который изначально не обладает привилегиями.&lt;/p&gt;&lt;p&gt;До настоящего момента, ничего не говорилось о создании dll. Эта обычная COM библиотека может быть создана в Delphi путем следующих действий:&lt;/p&gt;&lt;p&gt;&amp;quot;New&amp;quot; -&amp;gt; &amp;quot;Other...&amp;quot; -&amp;gt; &amp;quot;Delphi Projects&amp;quot;\&amp;quot;ActiveX&amp;quot; -&amp;gt; &amp;quot;ActiveX Library&amp;quot;, как это показано на скриншоте.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_cJOcMqD6Ohc/SbztKD6ftfI/AAAAAAAAADA/4FkGZhHROb4/s1600-h/clip_image002%5B1%5D%5B2%5D.jpg"&gt;&lt;img title="clip_image002[1]" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="184" alt="clip_image002[1]" src="http://lh6.ggpht.com/_cJOcMqD6Ohc/SbztKy_uEMI/AAAAAAAAADE/4WHOfDOxRwo/clip_image002%5B1%5D_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Как только мы создали и сохранили новый COM library проект, нам необходимо добавить новый COM объект, в котором мы реализуем функционал повышения привилегий.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_cJOcMqD6Ohc/SbztL-bRYxI/AAAAAAAAADI/EWnrqXmfqi8/s1600-h/clip_image004%5B1%5D%5B2%5D.jpg"&gt;&lt;img title="clip_image004[1]" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="216" alt="clip_image004[1]" src="http://lh5.ggpht.com/_cJOcMqD6Ohc/SbztMuH6n8I/AAAAAAAAADM/QaT9Rrbi6AM/clip_image004%5B1%5D_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;В демонстрационных целях мы определим единственный метод COM объекта, и опишем его с помощью интерфейса объекта по умолчанию:&lt;/p&gt;&lt;br /&gt;&lt;pre class="delphi" style="font-family:monospace;"&gt;&lt;ol&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;IMyPrivilegedObject &lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;interface&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000066; font-weight: bold;"&gt;IUnknown&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #000066;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;'{04004D01-2115-40D5-991F-D258C8CEF07E}'&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #000000; font-weight: bold;"&gt;function&lt;/span&gt; CreateFile&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;const&lt;/span&gt; aFileName&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;WideString&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;:&lt;/span&gt; HResult&lt;span style="color: #000066;"&gt;;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;stdcall&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;Этот метод позволит нам проверить, действительно ли COM объект привязывается к процессу повышения привилегий.&lt;/p&gt;&lt;p&gt;Теперь нам нужно создать пользовательскую фабрику классов (Class Factory) для нашего COM объекта. Это нужно по той причине, что Class Factory отвечает за регистрацию и удаление (unregistering) COM объекта в системном реестре. Мы не можем просто по умолчанию использовать TTypedComObjectFactory, потому существуют некоторые специальные значения, которые должны быть прописаны в реестре, для того, чтобы сделать возможным размещение вне процесса и независимое повышение привилегий.&lt;/p&gt;&lt;p&gt;Приложения не могут просто запрашивать у Windows повышение привилегий подобно тому, как это делает любой OLE код. Если бы оно могло делать это, это была бы серьезная дыра в системе безопасности. Любой код, который должен быть выполнен с повышенными привилегиями, должен быть помещен в COM объект, расположенный в dll, который должен быть подготовлен к повышению привилегий.&lt;/p&gt;&lt;p&gt;Здесь основная часть реализации фабрики классов.&lt;/p&gt;&lt;pre class="delphi" style="font-family:monospace;"&gt;&lt;ol&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;type&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  TPrivilegedClassFactory &lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;class&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;TTypedComObjectFactory&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #000000; font-weight: bold;"&gt;private&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    fResourceId&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;AnsiString&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #000000; font-weight: bold;"&gt;public&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    &lt;span style="color: #000000; font-weight: bold;"&gt;constructor&lt;/span&gt; Create&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      &lt;span style="color: #000000; font-weight: bold;"&gt;const&lt;/span&gt; aResourceId&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;AnsiString&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      aComServer&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TComServerObject&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      aTypedComClass&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TTypedComClass&lt;span style="color: #000066;"&gt;;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;const&lt;/span&gt; aClassID&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TGUID&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      aInstancing&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TClassInstancing&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      aThreadingModel&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TThreadingModel &lt;span style="color: #000066;"&gt;=&lt;/span&gt; tmSingle&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    &lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    &lt;span style="color: #000000; font-weight: bold;"&gt;procedure&lt;/span&gt; UpdateRegistry&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;aRegister&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Boolean&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;override&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #000000; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;implementation&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;constructor&lt;/span&gt; TPrivilegedClassFactory&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Create&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;const&lt;/span&gt; aResourceId&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;AnsiString&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  aComServer&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TComServerObject&lt;span style="color: #000066;"&gt;;&lt;/span&gt; aTypedComClass&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TTypedComClass&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #000000; font-weight: bold;"&gt;const&lt;/span&gt; aClassID&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TGUID&lt;span style="color: #000066;"&gt;;&lt;/span&gt; aInstancing&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TClassInstancing&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  aThreadingModel&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TThreadingModel&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #000000; font-weight: bold;"&gt;inherited&lt;/span&gt; Create&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    aComServer&lt;span style="color: #000066;"&gt;,&lt;/span&gt; aTypedComClass&lt;span style="color: #000066;"&gt;,&lt;/span&gt; aClassID&lt;span style="color: #000066;"&gt;,&lt;/span&gt; aInstancing&lt;span style="color: #000066;"&gt;,&lt;/span&gt; aThreadingModel&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #808080; font-style: italic;"&gt;{ Save the id of the string resource, that holds the application name. }&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  fResourceId &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; aResourceId&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;procedure&lt;/span&gt; TPrivilegedClassFactory&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;UpdateRegistry&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;aRegister&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Boolean&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;var&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  ID&lt;span style="color: #000066;"&gt;,&lt;/span&gt; ClassKey&lt;span style="color: #000066;"&gt;,&lt;/span&gt; FullFileName&lt;span style="color: #000066;"&gt;,&lt;/span&gt; FileName&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;AnsiString&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  ID &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: #000066;"&gt;GUIDToString&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;Self&lt;/span&gt;&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;ClassID&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  ClassKey &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;'CLSID\'&lt;/span&gt; &lt;span style="color: #000066;"&gt;+&lt;/span&gt; ID&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  FullFileName &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; ComServer&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;ServerFileName&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  FileName &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: #000066;"&gt;ExtractFileName&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;FullFileName&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #000000; font-weight: bold;"&gt;try&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    &lt;span style="color: #000000; font-weight: bold;"&gt;if&lt;/span&gt; aRegister &lt;span style="color: #000000; font-weight: bold;"&gt;then&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      &lt;span style="color: #000000; font-weight: bold;"&gt;inherited&lt;/span&gt; UpdateRegistry&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;aRegister&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      &lt;span style="color: #808080; font-style: italic;"&gt;{ DLL out-of-process hosting requirements. }&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      CreateRegKey&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;'AppID\'&lt;/span&gt; &lt;span style="color: #000066;"&gt;+&lt;/span&gt; ID&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;''&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; Description&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      CreateRegKey&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;'AppID\'&lt;/span&gt; &lt;span style="color: #000066;"&gt;+&lt;/span&gt; ID&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;'DllSurrogate'&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;''&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      CreateRegKey&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;'AppID\'&lt;/span&gt; &lt;span style="color: #000066;"&gt;+&lt;/span&gt; FileName&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;'AppID'&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; ID&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      &lt;span style="color: #808080; font-style: italic;"&gt;{ Over-The-Shoulder activation requirements. }&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      SetAccessPermissionsForLUAServer&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;'AppID\'&lt;/span&gt; &lt;span style="color: #000066;"&gt;+&lt;/span&gt; ID&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;'AccessPermission'&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      &lt;span style="color: #808080; font-style: italic;"&gt;{ COM object elevation requirements. }&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      CreateRegKey&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;ClassKey&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;'AppID'&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; ID&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      CreateRegKey&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;ClassKey&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;'LocalizedString'&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;'@'&lt;/span&gt; &lt;span style="color: #000066;"&gt;+&lt;/span&gt; FullFileName &lt;span style="color: #000066;"&gt;+&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;',-'&lt;/span&gt; &lt;span style="color: #000066;"&gt;+&lt;/span&gt; fResourceId&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      CreateRegKeyEx&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;ClassKey &lt;span style="color: #000066;"&gt;+&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;'\Elevation'&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;'Enabled'&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;'1'&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;nil&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; REG_DWORD&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    &lt;span style="color: #000000; font-weight: bold;"&gt;end&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;else&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      DeleteRegKey&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;ClassKey &lt;span style="color: #000066;"&gt;+&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;'\Elevation'&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      DeleteRegKey&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;'AppID\'&lt;/span&gt; &lt;span style="color: #000066;"&gt;+&lt;/span&gt; ID&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      DeleteRegKey&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;'AppID\'&lt;/span&gt; &lt;span style="color: #000066;"&gt;+&lt;/span&gt; FileName&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;      &lt;span style="color: #000000; font-weight: bold;"&gt;inherited&lt;/span&gt; UpdateRegistry&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;aRegister&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    &lt;span style="color: #000000; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #000000; font-weight: bold;"&gt;except&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    &lt;span style="color: #000000; font-weight: bold;"&gt;on&lt;/span&gt; E&lt;span style="color: #000066;"&gt;:&lt;/span&gt; EOleRegistrationError &lt;span style="color: #000000; font-weight: bold;"&gt;do&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;raise&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    &lt;span style="color: #000000; font-weight: bold;"&gt;on&lt;/span&gt; E&lt;span style="color: #000066;"&gt;:&lt;/span&gt; Exception &lt;span style="color: #000000; font-weight: bold;"&gt;do&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;raise&lt;/span&gt; EOleRegistrationError&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Create&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;E&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Message&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #000000; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;Как отмечено в комментариях, существуют три требования, которые должны быть удовлетворены: регистрация размещения вне процесса, регистрация «обратной» (Over-The-Shoulder) активации, регистрация превышения привилегий. Вы можете найти объяснение каждого из требований здесь, поэтому нет необходимости дублировать информацию.&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;Я только хочу отметить, что такие фабрики классов являются типичными, и могут быть использованы в любых Delphi приложениях, требующих повышения привилегий. Параметр aResourceId хранит ID ресурсной строки, которая будет отображаться в запросе на превышение в качестве имени приложения. Будьте готовы использовать валидный ID из строковой таблицы dll!&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;Теперь мы должны использовать новую фабрику классов для создания COM объекта, и встроить строковый ресурс в нашу dll:&lt;/pre&gt;&lt;br /&gt;&lt;pre class="delphi" style="font-family:monospace;"&gt;&lt;ol&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;initialization&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  TPrivilegedClassFactory&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Create&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    &lt;span style="color: #ff0000;"&gt;'101'&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #808080; font-style: italic;"&gt;// resource string id&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    ComServer&lt;span style="color: #000066;"&gt;,&lt;/span&gt; TMyPrivilegedObject&lt;span style="color: #000066;"&gt;,&lt;/span&gt; Class_MyPrivilegedObject&lt;span style="color: #000066;"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    ciMultiInstance&lt;span style="color: #000066;"&gt;,&lt;/span&gt; tmApartment&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;pre&gt;Это файл ресурсов со строкой, которая будет отображаться в запросе на превышение привилегий.&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;STRINGTABLE&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;{&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;101, &amp;quot;Delphi Elevation Demo&amp;quot;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;Последняя вещь, которую осталось сделать, это написать процедуру, которая будет вызываться из не привилегированного исполняемого файла в процессе вызова COM&amp;#160; объекта. Вот она:&lt;/pre&gt;&lt;pre class="delphi" style="font-family:monospace;"&gt;&lt;ol&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;procedure&lt;/span&gt; CoCreateInstanceAsAdmin&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  aHWnd&lt;span style="color: #000066;"&gt;:&lt;/span&gt; HWND&lt;span style="color: #000066;"&gt;;&lt;/span&gt;           &lt;span style="color: #808080; font-style: italic;"&gt;// parent for elevation prompt window&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #000000; font-weight: bold;"&gt;const&lt;/span&gt; aClassID&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TGUID&lt;span style="color: #000066;"&gt;;&lt;/span&gt; &lt;span style="color: #808080; font-style: italic;"&gt;// COM class guid&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #000000; font-weight: bold;"&gt;const&lt;/span&gt; aIID&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TGUID&lt;span style="color: #000066;"&gt;;&lt;/span&gt;     &lt;span style="color: #808080; font-style: italic;"&gt;// interface id implemented by class&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  out aObj               &lt;span style="color: #808080; font-style: italic;"&gt;// interface pointer&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;implementation&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;procedure&lt;/span&gt; CoCreateInstanceAsAdmin&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;aHWnd&lt;span style="color: #000066;"&gt;:&lt;/span&gt; HWND&lt;span style="color: #000066;"&gt;;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;const&lt;/span&gt; aClassID&lt;span style="color: #000066;"&gt;,&lt;/span&gt; aIID&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TGUID&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt; out aObj&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;var&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  BO&lt;span style="color: #000066;"&gt;:&lt;/span&gt; BIND_OPTS3&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  MonikerName&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;WideString&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #000000; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;not&lt;/span&gt; IsElevated&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;then&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    &lt;span style="color: #808080; font-style: italic;"&gt;{ Request elevated out-of-process instance. }&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    MonikerName &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;'Elevation:Administrator!new:'&lt;/span&gt; &lt;span style="color: #000066;"&gt;+&lt;/span&gt; &lt;span style="color: #000066;"&gt;GUIDToString&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;aClassID&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    &lt;span style="color: #000066;"&gt;FillChar&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;BO&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #000066;"&gt;SizeOf&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;BIND_OPTS3&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    BO&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;cbStruct&lt;/span&gt; &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: #000066;"&gt;SizeOf&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;BIND_OPTS3&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    BO&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;dwClassContext&lt;/span&gt; &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; CLSCTX_LOCAL_SERVER&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    BO&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;hwnd&lt;/span&gt; &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; aHWnd&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    OleCheck&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;CoGetObject&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000066; font-weight: bold;"&gt;PWideChar&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;MonikerName&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #000066;"&gt;@&lt;/span&gt;BO&lt;span style="color: #000066;"&gt;,&lt;/span&gt; aIID&lt;span style="color: #000066;"&gt;,&lt;/span&gt; aObj&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #000000; font-weight: bold;"&gt;end&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;else&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    &lt;span style="color: #808080; font-style: italic;"&gt;{ Request normal in-process instance. }&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    OleCheck&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;CoCreateInstance&lt;span style="color: #000066;"&gt;&amp;#40;&lt;/span&gt;aClassID&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;nil&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; CLSCTX_ALL&lt;span style="color: #000066;"&gt;,&lt;/span&gt; aIID&lt;span style="color: #000066;"&gt;,&lt;/span&gt; aObj&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;Здесь находится полный исходный код ElevationDemo в формате Delphi 2006 for Win32 проекта вмести с скомпилированными и подписанными бинарниками, так что вы можете протестировать их без компиляции. Конечно, вы для этого должны использовать Windows Vista. Когда вы запустите исполняемый файл, вы увидите нечто подобное:&lt;/pre&gt;&lt;pre&gt;&lt;a href="http://lh6.ggpht.com/_cJOcMqD6Ohc/SbztNLDR1BI/AAAAAAAAADQ/bGKeQO1KgLc/s1600-h/clip_image006%5B1%5D%5B2%5D.jpg"&gt;&lt;img title="clip_image006[1]" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="78" alt="clip_image006[1]" src="http://lh5.ggpht.com/_cJOcMqD6Ohc/SbztNnTGTII/AAAAAAAAADU/FJDgkjQP2zI/clip_image006%5B1%5D_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/pre&gt;&lt;p&gt;Чекбокс определяет будет ли вызываться COM объект, запрашивающий повышение привилегий или локальный COM объект, в случае вызова CreateFile(). Вы можете поэкспериментировать, вводя разные имена файлов в поле ввода.&lt;/p&gt;&lt;p&gt;Исходный код создан с использованием некоторых специфических Vista-структур, но для простоты я не включал код проверки ОС, пусть это будет домашним заданием для читателя.&lt;/p&gt;&lt;p&gt;Не забудьте сначала зарегистрировать DLL (для этого вам понадобятся привилегии Admin’а), в противном случае приложение не заработает. Обычно, это задача инсталлятора, но вы это можете сделать вручную:&lt;/p&gt;&lt;p&gt;regsvr32.exe PrivilegedLib.dll&lt;/p&gt;&lt;p&gt;здесь показано, как будет выглядеть ваш реестр после полной инсталляции: &lt;/p&gt;&lt;br /&gt;&lt;pre class="cpp" style="font-family:monospace;"&gt;&lt;ol&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Classes&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&lt;span style="color: #008000;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  AppID\PrivilegedLib.&lt;span style="color: #007788;"&gt;dll&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #008000;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    &lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;Default&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #008080;"&gt;:&lt;/span&gt; REG_SZ &lt;span style="color: #000080;"&gt;=&lt;/span&gt; null&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    AppID&lt;span style="color: #008080;"&gt;:&lt;/span&gt;     REG_SZ &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;'{6BCFB187-C1DD-4807-96AD-F91AB4AB08AC}'&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #008000;"&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  AppID\&lt;span style="color: #008000;"&gt;&amp;#123;&lt;/span&gt;6BCFB187&lt;span style="color: #000040;"&gt;-&lt;/span&gt;C1DD&lt;span style="color: #000040;"&gt;-&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;4807&lt;/span&gt;&lt;span style="color: #000040;"&gt;-&lt;/span&gt;96AD&lt;span style="color: #000040;"&gt;-&lt;/span&gt;F91AB4AB08AC&lt;span style="color: #008000;"&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #008000;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    &lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;Default&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #008080;"&gt;:&lt;/span&gt;        REG_SZ     &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;'MyPrivilegedObject'&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    AccessPermission&lt;span style="color: #008080;"&gt;:&lt;/span&gt; REG_BINARY &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color: #000080;"&gt;&amp;lt;&lt;/span&gt;BINARY VALUE&lt;span style="color: #000080;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;    DllSurrogate&lt;span style="color: #008080;"&gt;:&lt;/span&gt;     REG_SZ     &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color: #FF0000;"&gt;''&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: normal; vertical-align:top;"&gt;&lt;div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"&gt;  &lt;span style="color: #008000;"&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;br&gt;Если все прошло нормально, вы должны будете увидеть один из следующих диалогов, после того, как вы выполните вызов запроса на превышение привилегий – вид диалога зависит от ваших настроек безопасности.&lt;pre&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_CBcMMdeK1AU/ReSAzelutLI/AAAAAAAAAAk/L1gGJNPBZs4/s1600-h/ElevationPrompt1.jpg"&gt;&lt;img title="clip_image007[1]" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="136" alt="clip_image007[1]" src="http://lh5.ggpht.com/_cJOcMqD6Ohc/SbztOEMg8UI/AAAAAAAAADY/-JcEQTABzzc/clip_image007%5B1%5D%5B2%5D.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_CBcMMdeK1AU/ReSA_OlutMI/AAAAAAAAAAs/9TP5krppWbU/s1600-h/ElevationPrompt2.jpg"&gt;&lt;img title="clip_image008[1]" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="200" alt="clip_image008[1]" src="http://lh6.ggpht.com/_cJOcMqD6Ohc/SbztOjqHkMI/AAAAAAAAADc/A93A6PgeEBg/clip_image008%5B1%5D%5B2%5D.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/pre&gt;&lt;br&gt;Ну вот и все. Я надеюсь, что вам понравилась эта серия. Я уверен, что показал все важнейшие шаги по созданию UAC-aware приложения в Delphi. Естественно, что я опустил массу деталей, чтобы не слишком вас утомлять – но это тема для отдельной публикации на будущее. Как всегда, присылайте свои комментарии и пожелания.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-4169220014454954747?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/4169220014454954747/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=4169220014454954747' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/4169220014454954747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/4169220014454954747'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2009/03/vista-uac-delphi-3.html' title='Использование Vista UAC в Delphi: Часть 3'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_cJOcMqD6Ohc/SbztKy_uEMI/AAAAAAAAADE/4WHOfDOxRwo/s72-c/clip_image002%5B1%5D_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-8563925849418141107</id><published>2009-02-15T13:02:00.001+02:00</published><updated>2009-02-15T13:02:11.179+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='юбилеи'/><title type='text'>Delphi 14 лет</title><content type='html'>&lt;p&gt;14 февраля 1995 г. вышел официальный релиз Delphi 1.&lt;/p&gt;  &lt;p&gt;Поздравления всему Delphi сообществу!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://skiminog.livejournal.com/42443.html"&gt;Источник&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-8563925849418141107?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/8563925849418141107/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=8563925849418141107' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/8563925849418141107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/8563925849418141107'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2009/02/delphi-14.html' title='Delphi 14 лет'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-1120998888655796217</id><published>2009-02-12T20:07:00.008+02:00</published><updated>2009-02-12T20:36:23.461+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='UAC'/><title type='text'>Использование Vista UAC в Delphi: Часть 2</title><content type='html'>&lt;p align="justify"&gt;&lt;a href="http://developersoven.blogspot.com/2007/02/leveraging-vistas-uac-with-delphi-part_27.html"&gt;Оригинал&lt;/a&gt;.&lt;/p&gt;  &lt;p align="justify"&gt;Это вторая часть серии статей о UAC и Delphi, состоящей из трех частей.    &lt;br /&gt;&lt;a href="http://mda-delphi.blogspot.com/2009/02/vista-uac-delphi-1.html"&gt;Перейти к части 1.&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Полное описание логики работы UAC выходит за рамки данной статьи. Здесь я собираюсь только обозначить несколько относящихся к делу моментов.&lt;/p&gt;  &lt;p align="justify"&gt;По сути, UAC это все об уровнях привилегий. По умолчанию, обычное Windows приложение не требует администраторских привилегий. Вот почему под Vista, даже административные аккаунты, не используют полный доступ по умолчанию. Цель нормального UAC-приложения – запуск с доступом определяемым текущим аккаунтом, и лишь при реальной необходимости запрашивать повышенные права доступа. Сам процесс запроса повышения прав называется &lt;i&gt;повышение привилегий&lt;/i&gt; (&lt;i&gt;privilege elevation&lt;/i&gt;), и он требует, что бы пользователь подтвердил действие, перед тем, как это действие будет выполнено. Запрос на повышение может быть представлен либо в форме простого диалога Продолжить/Отменить (режим одобрения Админом), либо полноценного диалога логина (пользователи должны явным образом ввести свои полномочия), в зависимости от типа текущего аккаунта и настроек безопасности. Существует еще пара вариаций запроса в зависимости от того используется ли исполняемым файлом цифровая подпись или нет.&lt;/p&gt;  &lt;p align="justify"&gt;Следует помнить, что Vista поощряет использование цифровых подписей, показывая более дружелюбный запрос на &lt;i&gt;повышение привилегий &lt;/i&gt;(далее &lt;i&gt;elevation диалог&lt;/i&gt;) для подписанных исполняемых файлов.&lt;/p&gt;  &lt;p align="justify"&gt;Существуют различные способы дать возможность вашему приложению инициировать &lt;i&gt;elevation диалог&lt;/i&gt;. Большинство из них, хотя и просты для реализации, однако не дают извлечь максимальную пользу. Я даже не знаю насколько можно их применять, так как они опираются на функции обратной совместимости Vista. В этой части я кратко опишу три из них.&lt;/p&gt;  &lt;p align="justify"&gt;Использование эвристики Vista.&lt;/p&gt;  &lt;p align="justify"&gt;Windows Vista имеет множество встроенных приемов для облегчения возможности поддержки UAC. Один из них фактически основывается на том, что инсталлеры и апдейтеры, как правило, вынуждены писать в защищенную директорию Programm Files и/или ветвь реестра HKLM. Vista распознает такие приложения с помощью эвристического метода определения и автоматически выводит &lt;i&gt;elevation диалог&lt;/i&gt;, в тот момент, когда пользователь пытается выполнить их. &lt;/p&gt;  &lt;p align="justify"&gt;Есть целый ряд вещей, которые при этом проверяются, но я хотел бы отметить, единственную вещь, которую довольно легко реализовать и проверить – &lt;i&gt;elevation диалог&lt;/i&gt; вызывается, если имя исполняемого файла или информация о его версии содержат такие строки, как, например, “settings”, “install” или “update”.&lt;/p&gt;  &lt;p align="justify"&gt;В результате, такой подход является весьма полезным для автоматического обновления приложений, которые, как правило, самостоятельно скачивают новую версию, а затем запускают внешние утилиты для замены старых файлов приложений. Если эта утилита названа примерно так: 'MyAppUpdater.exe' (и снабжена цифровой подписью), то приложения могут инициировать вызов красивого &lt;i&gt;elevation диалога &lt;/i&gt;и запускать ее (утилиту) с полными правами доступа.&lt;/p&gt;  &lt;p align="justify"&gt;Очевидно, что такой подход применяется в отношении любого приложения, независимо от языка, на котором оно было разработано. Вам только нужно выбрать правильное название для исполняемого файла и все! Получите &lt;i&gt;elevation диалог&lt;/i&gt;!&lt;/p&gt;  &lt;p align="justify"&gt;Обратная сторона такого подхода заключается в том, что приложение всегда запускается с полными правами доступа, даже если это действительно требуется всего лишь для работы какой-то отдельной его части. Это и тот факт, что такой подход зависит от функциональной совместимости, делают его несколько менее привлекательным для продвинутых пользователей Vista.&lt;/p&gt;  &lt;p align="justify"&gt;Выполнение от имени администратора.&lt;/p&gt;  &lt;p align="justify"&gt;Другим способом достижения того же результата является выбор опции &amp;quot;Выполнять эту программу от имени администратора&amp;quot; (Run this program as an administrator) на вкладке «Совместимость» в свойствах приложения. Обратная сторона медали будет та же, что и предыдущего подхода, приложение всегда будет выполняться с завышенными правами.&lt;/p&gt;  &lt;p align="justify"&gt;Манифест приложения.&lt;/p&gt;  &lt;p align="justify"&gt;Несколько более сложный вариант предыдущего подхода заключается в том, чтобы вставить следующий манифест в исполняемый файл своего приложения:&lt;/p&gt;    &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_cJOcMqD6Ohc/SZRryixEmPI/AAAAAAAAABU/div1pjY8g4U/s1600-h/xml.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 212px;" src="http://1.bp.blogspot.com/_cJOcMqD6Ohc/SZRryixEmPI/AAAAAAAAABU/div1pjY8g4U/s400/xml.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5301981177392175346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p align="justify"&gt;Ключевой информацией здесь проявляется значение атрибута requestedExecutionLevel. Если атрибут примет значение &amp;quot;requireAdministrator&amp;quot;, то это послужит сигналом для Vista отобразить &lt;i&gt;elevation диалог &lt;/i&gt;в момент запуска приложения.&lt;/p&gt;  &lt;p align="justify"&gt;Предварительно, манифест может быть связан с исполняемым файлом, вам необходимо скомпилировать его в RES формате, используя следующий RC файл (я предполагаю, что вы достаточно знаете о файлах ресурсов и знаете что такое RC и RES файлы):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1 24 &amp;quot;UAC.manifest&amp;quot;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;   &lt;br /&gt;Где 1 – индекс ресурса, 24 – тип ресурса (RT_MANIFEST), и &amp;quot;UAC.manifest&amp;quot; – актуальное имя файла манифеста, который будет скомпилирован. Замечу, что вы можете использовать другой индекс ресурса, убедившись при этом, что отсутствуют совпадения с индексами других ресурсов, например XP манифестом. &lt;/p&gt;  &lt;p align="justify"&gt;Наконец, вы должны связать полученный RES файл с исполняемым файлом, используя директиву компилятора Delphi $R.&lt;/p&gt;  &lt;p align="justify"&gt;Такой подход имеет точно те же недостатки, сто и предыдущие. Он увеличивает права заранее, а не в случае необходимости.&lt;/p&gt;  &lt;p align="justify"&gt;OK, это был краткий обзор основ UAC совместимости. Теперь мы готовы вигаться в правильном направлении… &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-1120998888655796217?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/1120998888655796217/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=1120998888655796217' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/1120998888655796217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/1120998888655796217'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2009/02/vista-uac-delphi-2.html' title='Использование Vista UAC в Delphi: Часть 2'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_cJOcMqD6Ohc/SZRryixEmPI/AAAAAAAAABU/div1pjY8g4U/s72-c/xml.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-571894151096875685</id><published>2009-02-11T18:00:00.001+02:00</published><updated>2009-02-11T18:02:56.421+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='UAC'/><title type='text'>Использование Vista UAC в Delphi: Часть 1</title><content type='html'>&lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font size="1"&gt;Наконец-то произошло то, чего я так боялся. Сейчас мне придется адаптировать приложение для работы в Windows Vista. Первая и главная проблема здесь, это UAC. Поэтому я решил почитать &lt;/font&gt;&lt;a href="http://developersoven.blogspot.com/2007/02/leveraging-vistas-uac-with-delphi-part.html"&gt;&lt;font size="1"&gt;матчасть&lt;/font&gt;&lt;/a&gt;&lt;font size="1"&gt;. Возможно, кому-нибудь пригодится моя попытка перевода.&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;В настоящее время сотни технических блогов и статей, упоминают о возможностях User Account Control в Vista. К сожалению, многие авторы приуменьшают полезность этой функции.&lt;/p&gt;  &lt;p align="justify"&gt;Я говорю «к сожалению», потому, что мне нравится эта функция. И я считаю, неверным приуменьшать ее значимость. Я также считаю неверным то, что многие технические on-line источники и журналы с раздражением описывают UAC и даже предоставляют своим читателям инструкции по его отключению. Я думаю, что подобное отношение может впоследствии «обернутся боком».&lt;/p&gt;  &lt;p align="justify"&gt;Да, возможно, реализация UAC могла бы быть и лучшей. Но это не повод просто отключать его. При правильной настройке списки контроля доступа на объекты файловой системы UAC могут быть приведены к такому виду, что он уже не просто раздражает, а становится действительно полезным.&lt;/p&gt;  &lt;p align="justify"&gt;Но это не то, о чем я хочу поговорить. В свете моих мнений, я хочу показать вам, как использовать функции UAC в ваших Delphi приложениях. Так сказать, научить вас игратькрасиво, ...&lt;/p&gt;  &lt;p align="justify"&gt;Ввиду объемности статьи, я бы разделил ее на три части. Во второй части, я опишу некоторые наиболее общие UAC концепции, плюс бегло ознакомлю вас с тремя основными простыми методами, которые позволят вашим приложениям соответствовать им. В третьей, заключительной части, я сделаю упор на наиболее продвинутом подходе, включая написание определенного Delphi кода.&lt;/p&gt;  &lt;p align="justify"&gt;Ну что же, приступим…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-571894151096875685?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/571894151096875685/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=571894151096875685' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/571894151096875685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/571894151096875685'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2009/02/vista-uac-delphi-1.html' title='Использование Vista UAC в Delphi: Часть 1'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-2073673056438785159</id><published>2009-01-30T03:29:00.001+02:00</published><updated>2009-01-30T03:29:51.816+02:00</updated><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;Откровенно говоря, никогда не знал о том, что Delphi Language умеет обрабатывать подобные выражения:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;ShowMessage(intToStr(1--11));&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Результат – 12.&lt;/p&gt;  &lt;p&gt;Или, если угодно, он может и так: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;ShowMessage(intToStr(1-++-11));&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Те же 12.&lt;/p&gt;  &lt;p&gt;А вот так, уже не получится:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;ShowMessage(intToStr(1-*-11));&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-2073673056438785159?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/2073673056438785159/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=2073673056438785159' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/2073673056438785159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/2073673056438785159'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2009/01/blog-post.html' title='Операторы'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-5517363510157606449</id><published>2009-01-26T01:18:00.004+02:00</published><updated>2009-01-26T01:36:11.047+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='HTMViewer'/><category scheme='http://www.blogger.com/atom/ns#' term='TurboPower'/><title type='text'>TurboPower сomponents for Delphi 2009</title><content type='html'>&lt;a href="http://www.songbeamer.com/delphi/"&gt;http://www.songbeamer.com/delphi/&lt;/a&gt;&lt;br /&gt;На этом сайте вложен набор старых, хорошо известных компонентов, портированных под Delphi 2009.&lt;br /&gt;Поддержка большинства этих компонентов (а возможно и всех) была давно прекращена разработчиками. В представленном наборе можно найти хорошо известные компоненты производства TurboPower, код которых был открыт, после того, как компания прекратила существование, и еще много чего полезного. Учитывая серьезные изменения, произошедшие  в Delphi 2009 по части работы со строками, остается только снять шляпу перед авторами данных портов.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;RESPECT!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-5517363510157606449?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/5517363510157606449/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=5517363510157606449' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/5517363510157606449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/5517363510157606449'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2009/01/turbopower-omponents-for-delphi-2009.html' title='TurboPower сomponents for Delphi 2009'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-6464352196953641937</id><published>2008-11-18T17:51:00.000+02:00</published><updated>2008-11-18T17:54:03.649+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RAD Studio 2009'/><title type='text'>RAD Studio 2009</title><content type='html'>CodeGear анонсировал &lt;a href="http://www.codegear.com/products/radstudio"&gt;RAD Studio 2009&lt;/a&gt; - комбинацию Delphi 2009 (for Win32), C++Builder 2009 и Delphi Prism (for .NET).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-6464352196953641937?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/6464352196953641937/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=6464352196953641937' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/6464352196953641937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/6464352196953641937'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2008/11/rad-studio-2009.html' title='RAD Studio 2009'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-7624365240439887664</id><published>2008-10-15T01:35:00.002+03:00</published><updated>2008-10-15T01:37:57.369+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='ASProtect'/><title type='text'>Delphi 2009 и ASProtect</title><content type='html'>&lt;div&gt;В принципе все логично. Не работает. Функции возвращают строковые значения, которые не совпадают по длине. Соответственно, они честно вызываются, но в качестве результат возвращают абракадабру. Хотя можно попробовать сделать под это дело солюшн.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-7624365240439887664?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/7624365240439887664/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=7624365240439887664' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/7624365240439887664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/7624365240439887664'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2008/10/delphi-2009-asprotect.html' title='Delphi 2009 и ASProtect'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-8108798441106179547</id><published>2008-10-02T02:47:00.002+03:00</published><updated>2008-10-02T02:50:13.802+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi 2009'/><title type='text'>Delphi 2009 Reviewers Guide</title><content type='html'>Вот сегодня был обнародован &lt;a href="http://dn.codegear.com/article/38757"&gt;Delphi 2009 Reviewers Guide&lt;/a&gt;. На самом деле, это хороший документ. Только после его прочтения и ревью, собственно, не нужны. А обзоры нового продукта куда интересней писать исходя из собственных впечатлений, а уж потом смотреть, в каком месте эти впечатления были обманчивы :).&lt;br /&gt;ну вот эту штуку я явно пропустил в своем обзоре.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dn.codegear.com/article/images/38757/02000014.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px;" src="http://dn.codegear.com/article/images/38757/02000014.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-8108798441106179547?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/8108798441106179547/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=8108798441106179547' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/8108798441106179547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/8108798441106179547'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2008/10/delphi-2009-reviewers-guide.html' title='Delphi 2009 Reviewers Guide'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-4980878238799168197</id><published>2008-09-25T03:05:00.001+03:00</published><updated>2008-09-25T03:11:47.787+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi 2009'/><title type='text'>Новые Integer типы данных в Delphi 2009</title><content type='html'>В блоге Криса Бенсена (&lt;a href="http://chrisbensen.blogspot.com/2008/09/delphi-2009-new-integer-alias-types.html"&gt;Chris Bensen&lt;/a&gt;)вычитал о том, что появились новые типы-псевдонимы.&lt;br /&gt;&lt;br /&gt;type&lt;br /&gt;  Int8   = ShortInt;&lt;br /&gt;  Int16  = SmallInt;&lt;br /&gt;  Int32  = Integer;&lt;br /&gt;  UInt8  = Byte;&lt;br /&gt;  UInt16 = Word;&lt;br /&gt;  UInt32 = Cardinal;&lt;br /&gt;&lt;br /&gt;От себя добавлю, что, пожалуй это удобно. Конечно, размерность типов нужно помнить, но иногда...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-4980878238799168197?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/4980878238799168197/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=4980878238799168197' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/4980878238799168197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/4980878238799168197'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2008/09/integer-delphi-2009.html' title='Новые Integer типы данных в Delphi 2009'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-6444069068893006054</id><published>2008-09-12T18:23:00.001+03:00</published><updated>2008-09-17T16:51:06.277+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Delphi 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Unicode'/><title type='text'>Unicode</title><content type='html'>Основное новшество в Delphi 2009 это поддержка Unicode. Этот тезис идет красной линией по всем пресс-релизам, блогам, статьям и т.д. Но, что за этим стоит, и как, собственно понять, что моя программа поддерживает Unicode?&lt;br /&gt;Все довольно просто. Попробуйте выполнить этот код в Delphi 2007 и в Delphi 2009.&lt;br /&gt;Предварительно, установите поддержку языков с письмом иероглифами, как это показано на первом рисунке.&lt;br /&gt;var &lt;br /&gt;c: WideChar&lt;br /&gt;&lt;br /&gt;begin&lt;br /&gt;c:='投'; &lt;br /&gt;ShowMessage(c);&lt;br /&gt;end;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_cJOcMqD6Ohc/SMqNFIMh-CI/AAAAAAAAAAc/jUsZ_HqzFLc/s1600-h/region0.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_cJOcMqD6Ohc/SMqNFIMh-CI/AAAAAAAAAAc/jUsZ_HqzFLc/s320/region0.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245159835265267746" /&gt;&lt;/a&gt;&lt;br /&gt;Резултат очевиден.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_cJOcMqD6Ohc/SMqOH0hkJQI/AAAAAAAAAAk/OAhYkfR2NN4/s1600-h/region2.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_cJOcMqD6Ohc/SMqOH0hkJQI/AAAAAAAAAAk/OAhYkfR2NN4/s320/region2.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245160981036016898" /&gt;&lt;/a&gt;&lt;br /&gt;А для того, что бы программа, собранная на Delphi 2007 правильно вывела иероглиф 投 нужно поменять язык программ, которые не поддерживают Unicode.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_cJOcMqD6Ohc/SMqKuVmbUeI/AAAAAAAAAAU/JwZYWO47c48/s1600-h/region.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_cJOcMqD6Ohc/SMqKuVmbUeI/AAAAAAAAAAU/JwZYWO47c48/s320/region.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245157244703298018" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-6444069068893006054?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/6444069068893006054/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=6444069068893006054' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/6444069068893006054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/6444069068893006054'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2008/09/unicode.html' title='Unicode'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_cJOcMqD6Ohc/SMqNFIMh-CI/AAAAAAAAAAc/jUsZ_HqzFLc/s72-c/region0.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-345038291000783625</id><published>2008-09-10T03:34:00.001+03:00</published><updated>2008-09-11T02:56:41.689+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi Tiburon'/><title type='text'>Delphi 2009 for Win32 и C++ Builder Release</title><content type='html'>Вчера наконец-то &lt;a href="http://cc.codegear.com/item/25876"&gt;зарелизило&lt;/a&gt;.&lt;br /&gt;Все опасения относительно некой нецелостности и убогости инсталлятора беты были напрасными. 14-дневный триал стал, как и положено становиться готовому продукту.&lt;br /&gt;Delphi и C++ в одном комплекте, но можно выбирать.&lt;br /&gt;Справочная система ставится отдельно.&lt;br /&gt;Никаких PreRequired не нужно.&lt;br /&gt;Ставится дольше чем загружается. В принципе, я никуда не спешу.&lt;br /&gt;И оффлайновая инсталляция ER/Studio догружается отдельно.&lt;br /&gt;Огорчило то, что при установке занял места почти вдвое больше, чем попросил. Правда после установки честно его вернул.&lt;br /&gt;&lt;br /&gt;Цена Professional - около $ 800 для новых пользователей, $400 на апгрейт. В США чуть дешевле. Продажи в РФ и на Украине уже начались. 1С, кстати торгует среди прочих.&lt;br /&gt;Апгрейт можно сделать и с Турбо. Только Турбо с продажи сняли.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-345038291000783625?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/345038291000783625/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=345038291000783625' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/345038291000783625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/345038291000783625'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2008/09/delphi-2009-for-win32-c-builder-release.html' title='Delphi 2009 for Win32 и C++ Builder Release'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-6881535853075314823</id><published>2008-09-07T04:00:00.000+03:00</published><updated>2008-09-07T04:02:19.986+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='баги'/><category scheme='http://www.blogger.com/atom/ns#' term='Chrome'/><title type='text'>Chrome. Баги</title><content type='html'>А вот и первый замеченный баг. Довольно серьезный. При попытке загрузить pdf с сайта CodeGear Crome упал замертво.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-6881535853075314823?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/6881535853075314823/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=6881535853075314823' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/6881535853075314823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/6881535853075314823'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2008/09/chrome.html' title='Chrome. Баги'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-1267431971207940926</id><published>2008-09-06T05:14:00.000+03:00</published><updated>2008-09-06T05:19:18.976+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='браузерыб домены'/><category scheme='http://www.blogger.com/atom/ns#' term='Chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='Интернет'/><title type='text'>Интернет</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_cJOcMqD6Ohc/SMHoSxm1pTI/AAAAAAAAAAM/Au6vhoAg5_k/s1600-h/chrome.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_cJOcMqD6Ohc/SMHoSxm1pTI/AAAAAAAAAAM/Au6vhoAg5_k/s320/chrome.jpg" alt="" id="BLOGGER_PHOTO_ID_5242726850487493938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;За последнюю неделю в Интернете произошло два знаменательных события.&lt;br /&gt;&lt;br /&gt;1. &lt;b&gt;Google выпустил свой браузер.&lt;/b&gt; Chrome называется. Полметра инсталляции. Для тех, кто считает трафик, сразу скажу, что инсталлятор on-line. Иными словами качнули вы полметра, запустили установку, а потом к вам на машину еще пять метров приползло. Это установочный файл сам решил, что вам надо и подкачал. Т.е. размер - метров 6 получается...&lt;br /&gt;Сам браузер.&lt;br /&gt;Быстр, хотя первую страницу открывает долго, уж не знаю почему.&lt;br /&gt;Аскетично прост.&lt;br /&gt;Работает корректно .&lt;br /&gt;Видит весь кэш FireFox, включая сохраненные пароли.&lt;br /&gt;С плагинами пока не ясно...&lt;br /&gt;Грузится быстро.&lt;br /&gt;Полностью руссифицирован.&lt;br /&gt;Никакой рекламы.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Вердикт.&lt;br /&gt;Мне понравился.&lt;br /&gt;То, что быстр, означает экономию трафика. На выходных прогоню по плохому каналу. Проверю "на вшивость".&lt;br /&gt;Но похоже в моем личном рейтинге он займет вторую позицию, вытеснив Оперу. Если обрастет плагинами, не утратив скорость, вытеснит и FireFox. Но об этом пока рано.&lt;br /&gt;&lt;br /&gt;2. Теперь можно покупать домены с русскими буквами в зонах .com и .net&lt;br /&gt;Например:&lt;br /&gt;www.божко.com&lt;br /&gt;Стоимость $18&lt;br /&gt;Домены метут, самые ходовые уже проданы.&lt;br /&gt;Мы тоже себе прикупили на пару с коллегой &lt;lj user="i_vs_i"&gt; десяточек доменов.&lt;br /&gt;Вот такие мы киберсквотеры. :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/lj&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-1267431971207940926?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/1267431971207940926/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=1267431971207940926' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/1267431971207940926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/1267431971207940926'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2008/09/blog-post.html' title='Интернет'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_cJOcMqD6Ohc/SMHoSxm1pTI/AAAAAAAAAAM/Au6vhoAg5_k/s72-c/chrome.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-2586334115009119796</id><published>2008-09-05T02:30:00.002+03:00</published><updated>2008-09-05T02:37:52.904+03:00</updated><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='Tiburon'/><title type='text'>Delphi 2009 Tiburon</title><content type='html'>В ближайшее время ожидается релиз нового продукта.&lt;br /&gt;По мотивам изученного в блогах тестеров и разработчиков я написал статью&lt;br /&gt;&lt;a href="http://www.xakep.ru/post/44864/default.asp"&gt;http://www.xakep.ru/post/44864/default.asp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Собственно, изрядно обновилось все.&lt;br /&gt;Главное - поддержка юникод.&lt;br /&gt;Новые конструкции в языке.&lt;br /&gt;IDE стала удобнее за счет переработки диалогов.&lt;br /&gt;Ну, и по мелочам...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-2586334115009119796?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/2586334115009119796/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=2586334115009119796' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/2586334115009119796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/2586334115009119796'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2008/09/delphi-2009-tiburon.html' title='Delphi 2009 Tiburon'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-2611212939437248853</id><published>2008-05-24T13:03:00.000+03:00</published><updated>2008-05-24T13:07:19.337+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hvgihkzd'/><title type='text'>Кто виноват?</title><content type='html'>[DCC Error] F2039 Could not create output file 'C:\Documents and Settings\All Users\?????????\RAD Studio\5.0\Dcp\dclfrx10.bpl'&lt;br /&gt;&lt;br /&gt;Вот такую радость теперь я вижу при установке Delphi компонентов.&lt;br /&gt;И кто же придумал называть системные директории русскими букОвКами.&lt;br /&gt;Ну ведь, не только же завирусованные домохозяйки винду пользуют. Иногда же она и для работы нужна. За что я плачу свои деньги?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-2611212939437248853?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/2611212939437248853/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=2611212939437248853' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/2611212939437248853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/2611212939437248853'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2008/05/blog-post.html' title='Кто виноват?'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-8241420399933608244</id><published>2008-02-02T15:44:00.000+02:00</published><updated>2008-02-02T15:49:03.747+02:00</updated><title type='text'>RAD Studio в России</title><content type='html'>Прекрасная новость! По сообщению издания &lt;a href="http://www.infoworld.com/article/08/02/01/codegear-russia_1.html"&gt;InfoWorld&lt;/a&gt; Россия приобрела миллион лицензий на использование RAD Studio в школах.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-8241420399933608244?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/8241420399933608244/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=8241420399933608244' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/8241420399933608244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/8241420399933608244'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2008/02/rad-studio.html' title='RAD Studio в России'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-3614746026971009275</id><published>2007-09-02T23:52:00.001+03:00</published><updated>2008-09-05T02:30:39.817+03:00</updated><title type='text'>Горец - Призрак</title><content type='html'>В пятницу, 31 августа, на сайте CodeGear появились ссылки на полнофункциональную версию RAD Studio 2007. Продукт анонсировался под рабочим названием Highlander. Однако, через несколько часов ссылки были сняты с сайта компании. Тем не менее, они продолжали работать.&lt;br /&gt;В чем причина удаления ссылок со страницы CodeGear и, действительно-ли это релиз Highlander- неизвестно. Возможно, как это не раз бывало ранее, сервера компании просто не выдержали нагрузку.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-3614746026971009275?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/3614746026971009275/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=3614746026971009275' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/3614746026971009275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/3614746026971009275'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2007/09/blog-post.html' title='Горец - Призрак'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-6574361097349795682</id><published>2007-08-25T01:40:00.001+03:00</published><updated>2007-08-25T02:02:13.412+03:00</updated><title type='text'>Книжные новинки</title><content type='html'>В ходе сегодняшнего посещения книжного рынка была приобретена книга&lt;br /&gt;&lt;pre&gt;&lt;a href="http://www.books.ru/shop/books/521786?partner=MDA"&gt;&lt;br /&gt;&lt;img src="http://www.books.ru/img/521786m.jpg"&gt;&lt;/a&gt;&lt;/pre&gt;&lt;br /&gt;Хочу заметить, что ADO .Net 2.0 достаточно серьезно отличается от предыдущей версии.&lt;br /&gt;Поэтому почитать не вредно будет. Сейчас есть всего лишь 2 книги, освещающие работу в ADO .Net 2.0. Вторая книга - скорее начальный уровень:&lt;br /&gt;&lt;a href="http://www.books.ru/shop/books/438431?partner=MDA"&gt;&lt;br /&gt;&lt;img src="http://www.books.ru/img/438431m.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Порадовала еще одна новинка:&lt;br /&gt;&lt;a href="http://www.books.ru/shop/books/520674?partner=MDA"&gt;&lt;br /&gt;&lt;img src="http://www.books.ru/img/520674m.jpg"&gt;&lt;/a&gt;&lt;br /&gt;Увы, времени на все не хватает.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-6574361097349795682?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/6574361097349795682/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=6574361097349795682' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/6574361097349795682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/6574361097349795682'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2007/08/blog-post_8058.html' title='Книжные новинки'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-8045101171402515690</id><published>2007-08-18T04:03:00.000+03:00</published><updated>2007-08-18T05:09:38.999+03:00</updated><title type='text'>Котлета по-киевски</title><content type='html'>Вчера общался с коллегой, который уехал в штаты, вероятно, в поисках лучшей жизни. Попутно готовил себе ужин. Котлета по-киевски. Отмечу, что на протяжении последних трех лет мы перманентно обсуждаем вопрос иммиграции. В контексте того, стоит-ли уезжать или нет.&lt;br /&gt;Не смотря на то, что каждый остается при своем мнении, диалог получается порой интересный. Вчера я спросил, можно-ли в штатах купить заготовку котлеты по-киевски. Он ответил - нет. Это был очень сильный аргумент, в пользу того, что бы никуда не ехать :)&lt;br /&gt;Естественно, вы уже догадались, что смысл этой заметки вовсе не в котлете. Просто время от времени, необходимо оценивать, что у тебя есть на текущий момент, в чем ты нуждаешься и чего хочешь достичь. Вот подобные обсуждения сильно помогают.&lt;br /&gt;А теперь, собственно, какие выводы я сделал для себя из вчерашнего разговора.&lt;br /&gt;1. Безусловно, зарплаты в США повыше чем в Харькове. Но если уж здесь денег не хватает на решение бытовых проблем, то там их не хватит тем более. Хотя этих самых проблем там меньше, а способы их решения проще (но, отнюдь не дешевле).&lt;br /&gt;2. Вместе с тем, в Харькове за последнее время доход ИТ специалистов сильно вырос. Я и сам это вижу и многие замечают этот факт. Связано это, скорее всего, с тем, что, скажем киевские программисты еще дороже. И рентабельнее привлекать образованных специалистов из других регионов. Вместе с тем, спрос на аутсорсинговый кодинг (не уверен, что это грамотное выраженее, но, думаю смысл ясен) растет. И если тенденция сохранится еще некоторое время, то зарплаты будут вполне удовлетворительными. Ну, а далее все в ваших (наших) руках.&lt;br /&gt;3. Важным аргументом "за" является то, что после отъезда неизбежно попадаешь в англоязычную среду. Со всеми вытекающими. Это не раз обсуждалось, не буду останавливаться подробно. С другой стороны, анлим в Харькове 512К от 80 грв. стоит. Кто не дает общаться в англоязычной среде сейчас? Стоит-ли ехать куда-то ради этого?&lt;br /&gt;4. Пугает все же то, что сферы деятельности, связанные с бизнесом как-то уж сильно оторвались по уровню доходов от всех остальных. На фоне политической нестабильности (банально, но факт) это может печально закончиться. Вариантов много. Но будем на лучшее надеяться.&lt;br /&gt;5. Ну и давайте не будем забывать о том, что не все деньгами измеряется. Или уровнем доходов. Есть, в конце концов, семья, друзья и так далее. Все же это очень важно. Особенно с возрастом приходит понимание этого.&lt;br /&gt;&lt;br /&gt;Так, что далеко не все однозначно, и просто так, что-то менять, пожалуй нет смысла.&lt;br /&gt;&lt;br /&gt;А для тех, кто пристает с вопросами: "Почему ты не уедешь, ведь ты бы мог..." я нашел краткий и не обременяющий ответ. Во Флориде нет КОТЛЕТ ПО-КИЕВСКИ.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-8045101171402515690?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/8045101171402515690/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=8045101171402515690' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/8045101171402515690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/8045101171402515690'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2007/08/blog-post.html' title='Котлета по-киевски'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-1086238977577650597</id><published>2007-06-23T23:45:00.000+03:00</published><updated>2007-06-23T23:49:12.477+03:00</updated><title type='text'>mda-delphi.ru</title><content type='html'>Сил поддерживать проект в одиночку в один прекрасный момент просто не осталось. За день до окончания моей подписки на домен его (домен) стало жалко.&lt;br /&gt;Поссорился с регистратором и хостером.  И все же домен они мне не отдали. Теперь он у киберсквотеров :(&lt;br /&gt;Все.&lt;br /&gt;Проект закрыт.&lt;br /&gt;Всем спасибо! Война окончена.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-1086238977577650597?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/1086238977577650597/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=1086238977577650597' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/1086238977577650597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/1086238977577650597'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2007/06/mda-delphiru.html' title='mda-delphi.ru'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-8057512275147362251</id><published>2007-06-23T23:37:00.000+03:00</published><updated>2007-06-23T23:40:40.903+03:00</updated><title type='text'>Аккаунты</title><content type='html'>Вообще, это просто праздник.&lt;br /&gt;У меня три аккаунта google. Каждый под свой инструмент. Путаница. Надо преобразовывать это все к одному.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-8057512275147362251?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/8057512275147362251/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=8057512275147362251' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/8057512275147362251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/8057512275147362251'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2007/06/blog-post.html' title='Аккаунты'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-9079433021879432191</id><published>2007-05-15T03:20:00.000+03:00</published><updated>2007-05-15T03:31:57.983+03:00</updated><title type='text'>Новая работа</title><content type='html'>Хм...&lt;br /&gt;Регулярность ведения блога все еще оставляет желать лучшего :).&lt;br /&gt;Ну да ладно.&lt;br /&gt;Около двух месяцев назад я сменил работу.&lt;br /&gt;Собственно, к теме MDA я рассчитываю вернуться, но вероятно, это будет несколько позднее.&lt;br /&gt;А сейчас (как бы это правильно сказать по-русски) пытаюсь принять участие в это проекте:&lt;br /&gt;&lt;a href="http://scimore.com"&gt;http://scimore.com&lt;/a&gt;&lt;br /&gt;Собственная СУБД учередителей, основавших нашу фирму.&lt;br /&gt;Интересный проект. Не скажу сейчас чем он лучше или хуже других. Вероятно, все зависит от нас.&lt;br /&gt;Самая интересная задача для меня - подружить эту СУБД с Delphi. Ну а потом естественно и с MDA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-9079433021879432191?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/9079433021879432191/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=9079433021879432191' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/9079433021879432191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/9079433021879432191'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2007/05/blog-post.html' title='Новая работа'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-117062966368245926</id><published>2007-02-05T00:48:00.000+02:00</published><updated>2007-02-05T00:57:49.473+02:00</updated><title type='text'>О ShareWare</title><content type='html'>Коль скоро речь зашла об ASProtect, скажу, что купил его я не просто так. Имеется ряд идей и наработок которые "устали лежать в столе". Вероятнее всего, они будут доводится до ума, а некоторые из них - продаваться.&lt;br /&gt;Единственное чего не хватает - времени... Ввиду чего я начал сотрудничество с парнем, написавшим эту &lt;a href="http://mega-soft.ru/prg706.html"&gt;программу&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-117062966368245926?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/117062966368245926/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=117062966368245926' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/117062966368245926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/117062966368245926'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2007/02/shareware.html' title='О ShareWare'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-117062920193181641</id><published>2007-02-05T00:41:00.000+02:00</published><updated>2007-02-05T00:56:09.356+02:00</updated><title type='text'>ASProtect</title><content type='html'>Недавно приобрел себе эту прекрасную программу. С первой ее версией   был знаком давно.&lt;br /&gt;И моя &lt;a href="http://www.xakep.ru/post/36603/default.asp"&gt;статья &lt;/a&gt;посвященная ей.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-117062920193181641?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/117062920193181641/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=117062920193181641' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/117062920193181641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/117062920193181641'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2007/02/asprotect.html' title='ASProtect'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-116578921470082647</id><published>2006-12-11T00:04:00.000+02:00</published><updated>2006-12-11T00:20:16.213+02:00</updated><title type='text'>Переезды блогов.</title><content type='html'>Давненько не писал :(&lt;br /&gt;К сожалению, не хватает сил себя заставить...&lt;br /&gt;---&lt;br /&gt;Ближе к Новому году наметелась "массовая миграция" блогов представителей ECO сообщества.&lt;br /&gt;Вслед за переездом &lt;a href="http://delphi2006.blogspot.com/"&gt;Holger's Thoughts on Delphi&lt;/a&gt; - &lt;a href="http://flickdotnet.de/blogs/sample_weblog/default.aspx"&gt;сюда&lt;/a&gt;, переехал и блог Питера Морриса (а точнее, Питер завел себе &lt;a href="http://mrpmorris.blogspot.com/index.html"&gt;новый блог&lt;/a&gt;).&lt;br /&gt;В отличие от меня, эти парни не леняться писать регулярно.&lt;br /&gt;Кстати, приятно было прочесть &lt;a href="http://delphi2006.blogspot.com/2006/08/russian-mda-user-group.html#links"&gt;пост он нашем сайте&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://delphi2006.blogspot.com/"&gt; &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-116578921470082647?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/116578921470082647/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=116578921470082647' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/116578921470082647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/116578921470082647'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2006/12/blog-post.html' title='Переезды блогов.'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-114431073338459931</id><published>2006-04-06T11:00:00.000+03:00</published><updated>2006-04-06T11:05:33.773+03:00</updated><title type='text'>Снова о классах-ассоциациях</title><content type='html'>С поиском связанных объектов в Bold мы вроде бы разобрались в одном из предыдущих постов. Сегодня нашел решение для ECO. Автор mr. Peter Morris [Droopy eyes software] (думаю представлять не надо). Далее цитирую дословно.&lt;br /&gt;&lt;br /&gt;There will be two properties, I don't remember exactly how they are named &lt;br /&gt;but it will be something like this&lt;br /&gt;&lt;br /&gt;[ClassA] (AInstances)---[MyAssociationClass]---(BInstances) [ClassB]&lt;br /&gt;&lt;br /&gt;To get from ClassA to ClassB you would do ClassA.BInstances.&lt;br /&gt;To get from ClassA to the association classes you would do &lt;br /&gt;ClassA.MyAssociationClass, which returns a list of MyAssociationClass.&lt;br /&gt;&lt;br /&gt;To get the specific class you would do something like&lt;br /&gt;&lt;br /&gt;Index := ClassA.BInstances.IndexOf[ClassBInstanceILinkedTo];&lt;br /&gt;AssociationObject := ClassA.AssociationClass[Index];&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I think that's right, but I have never needed it in code before.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-114431073338459931?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/114431073338459931/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=114431073338459931' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/114431073338459931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/114431073338459931'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2006/04/blog-post.html' title='Снова о классах-ассоциациях'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-114423289600209329</id><published>2006-04-05T13:27:00.000+03:00</published><updated>2006-04-05T13:42:54.210+03:00</updated><title type='text'>Установка BoldPersistenceHandleDBISAM</title><content type='html'>&lt;div align=justify&gt;Более года назад потратил некоторое время на то, что бы поставить &lt;span style="font-weight: bold;"&gt;BoldPersistenceHandleDBISAM&lt;/span&gt;, затем в форуме http://mda-delphi.ru/forums/ меня спрашивали как это делается, я написал кратенькое руководство. Сейчас возникла необходимость вновь поставить это дело. Отрыл сосбственный мануал, и, как и ожидалось все прошло без проблем. Вот привожу его здесь.&lt;br&gt;&lt;br /&gt;1. Все закрыть.&lt;br /&gt;2. Меню Component|Install Component;&lt;br /&gt;3. Закладка Into New Package&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/489/2504/1600/1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/489/2504/320/1.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/489/2504/1600/2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/489/2504/320/2.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;4. Открыть тот файл, что указан на рисунке (&lt;span style="font-weight:bold;"&gt;BoldPersistenceHandleDBISAMReg&lt;/span&gt;)&lt;br /&gt;Package file name – свое имя, и разместить где-нибудь по пути, который прописан для поиска, что бы потом не перепрописывать. Например, там же. Хотя, аккуратности ради, можно создать каталог и поставить на него пути…&lt;br /&gt;5.Сказать Yes в ответ на этот вопрос&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/489/2504/1600/3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/489/2504/320/3.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;5. Откомпилировать(Кнопка Compile) и получить ошибку&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/489/2504/1600/4.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/489/2504/320/4.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;В секции Uses того модуля который ругается прописать DBISamConsts&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/489/2504/1600/5.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/489/2504/320/5.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;6. Нажать кнопку Install на вновь появившейся форме из п.5&lt;br /&gt;7. Нажать "Ок"&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/489/2504/1600/6.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/489/2504/320/6.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;8. Получить &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/489/2504/1600/7.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/489/2504/320/7.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;9. На вкладке BoldPersistence заметить новую кнопку :)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-114423289600209329?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/114423289600209329/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=114423289600209329' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/114423289600209329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/114423289600209329'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2006/04/boldpersistencehandledbisam.html' title='Установка BoldPersistenceHandleDBISAM'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-114306432843925587</id><published>2006-03-22T23:44:00.000+02:00</published><updated>2006-03-23T11:30:17.586+02:00</updated><title type='text'>Bold. Копирование объектов.</title><content type='html'>&lt;style type="text/css"&gt;&lt;br /&gt;&lt;!--&lt;br /&gt;body { color: #000000; background-color: #FFFFFF; }&lt;br /&gt;.pas1-assembler { background-color: #FFFFFF; color: #000000; }&lt;br /&gt;.pas1-character { background-color: #FFFFFF; color: #FF00FF; }&lt;br /&gt;.pas1-comment { background-color: #FFFFFF; color: #008000; }&lt;br /&gt;.pas1-float { background-color: #FFFFFF; color: #000000; }&lt;br /&gt;.pas1-hexadecimal { background-color: #FFFFFF; color: #000000; }&lt;br /&gt;.pas1-identifier { background-color: #FFFFFF; color: #000000; }&lt;br /&gt;.pas1-number { background-color: #FFFFFF; color: #000000; }&lt;br /&gt;.pas1-preprocessor { background-color: #FFFFFF; color: #008000; }&lt;br /&gt;.pas1-reservedword { background-color: #FFFFFF; color: #0000FF; }&lt;br /&gt;.pas1-space { background-color: #FFFFFF; color: #000000; }&lt;br /&gt;.pas1-string { background-color: #FFFFFF; color: #FF00FF; }&lt;br /&gt;.pas1-symbol { background-color: #FFFFFF; color: #000000; }&lt;br /&gt;--&gt;&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;div align="justify"&gt;В настоящий момент я внедряю проект, реализованный (почти) на Bold. Параллельно добавляются некоторые вкусности и полезности, и, естественно, устраняются багги. Одной из таких полезностей является копирование объектов. Что я имею в виду? Предположим, имеется накладная, содержащая неоторые товары. Количество и стоимость товара являются атрибутами класса-ассоциации. Я именую такой класс - расшифровка накладной. Процесс формирования накладной занимает определенное время (подбор товара, указание цены и количества и т.д.). Достаточно часто возникает необходимость создания типовых накладных. С точки зрения пользователя, в этом случае, значительно удобнее сделать копию имеющейся накладной, чем создавать новую «с нуля». Что должно произойти с технической точки зрения?&lt;br /&gt;&lt;br /&gt;Создается новый объект – экземпляр класса «накладная»;&lt;br /&gt;Устанавливаются связь нового объекта с теми товарами, которые ассоциированы с копируемой накладной;&lt;br /&gt;Ищутся соответсвующие экземпляры класса –ассоциации и копируются их атрибуты.&lt;br /&gt;Здесь очень важно правильно найти соответсвующие расшифровки накладных. Если в исходной накладной проводится два процессора и один винчестер, то в копии должно быть именно два процессора и винчестер, а не наоборот.&lt;br /&gt;&lt;br /&gt;Почему задача должна решаться именно так? Мы не можем создать класс ассоциацию обычным методом. Он создается автоматически после связывания двух объектов. Возможно, было бы удобнее, создавать экземпляр класса –ассоциации, так как создаются экземпляры обычных классов, и это бы приводило к автоматическому связыванию ассоциацией соответсвующих объектов, но так не происходит. Функции TBoldCopyAndClone.BoldCopy и TBoldCopyAndClone.BoldClone также не справляются с задачей.&lt;br /&gt;&lt;br /&gt;В принципе, вышеописанная задача достаточно типична. И я решил написать две подпрограммы, которые можно использовать в подобной ситуации без модификаций.&lt;br /&gt;&lt;br /&gt;Вот их текст:&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="font: 10pt Courier New;"&gt;&lt;span class="pas1-reservedword"&gt;function&lt;/span&gt;&lt;span class="pas1-space"&gt; TfClientCard.LocateAssObject(AssClName:&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;string&lt;/span&gt;&lt;span class="pas1-symbol"&gt;; &lt;br /&gt;frstObj, secObj: TBoldObject): TBoldElement;&lt;br /&gt; &lt;/span&gt;&lt;span class="pas1-reservedword"&gt;var&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-space"&gt; Expr: &lt;/span&gt;&lt;span class="pas1-reservedword"&gt;string&lt;/span&gt;&lt;span class="pas1-symbol"&gt;;&lt;br /&gt; brL: TBoldReferenceHandle;&lt;br /&gt; BOV: TBoldOCLVariables;&lt;br /&gt; CI: TBoldVariableTuple;&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;begin&lt;br /&gt;try&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-identifier"&gt;brl:=TBoldReferenceHandle.Create(self);&lt;br /&gt;brl.StaticSystemHandle:= DM.bsh;&lt;br /&gt;brl.StaticValueTypeName:=secObj.BoldClassTypeInfo.ExpressionName;&lt;br /&gt;brl.Value:= secObj &lt;/span&gt;&lt;span class="pas1-reservedword"&gt;as&lt;/span&gt;&lt;span class="pas1-space"&gt; TBoldElement;&lt;br /&gt;BOV:=TBoldOCLVariables.Create(self);&lt;br /&gt;CI:=TBoldVariableTuple(BOV.Variables.Add);&lt;br /&gt;CI.VariableName:=&lt;/span&gt;&lt;span class="pas1-string"&gt;'vNewObj'&lt;/span&gt;&lt;span class="pas1-symbol"&gt;;&lt;br /&gt;CI.BoldHandle:=brl;&lt;br /&gt;Expr:=&lt;/span&gt;&lt;span class="pas1-string"&gt;'self.'&lt;/span&gt;&lt;span class="pas1-symbol"&gt;+LowerCase(AssClName)+&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-string"&gt;'-&amp;gt;select('&lt;/span&gt;&lt;span class="pas1-symbol"&gt;+LowerCase(secObj.BoldClassTypeInfo.ExpressionName)+&lt;/span&gt;&lt;span class="pas1-string"&gt;'=vNewObj)-&amp;gt;first'&lt;/span&gt;&lt;span class="pas1-symbol"&gt;;&lt;br /&gt;result:=frstObj.EvaluateExpressionAsDirectElement(Expr,BOV.VariableList);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;finally&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-identifier"&gt;bov.Free;&lt;br /&gt;brl.Free;&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;end&lt;/span&gt;&lt;span class="pas1-symbol"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;end&lt;/span&gt;&lt;span class="pas1-symbol"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;procedure&lt;/span&gt;&lt;span class="pas1-space"&gt; TfClientCard.CopyAssociations(SourceObj, DistObj: TBoldObject; &lt;br /&gt;AssClassName, RoleName: &lt;/span&gt;&lt;span class="pas1-reservedword"&gt;string&lt;/span&gt;&lt;span class="pas1-symbol"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-comment"&gt;// SourceObj - объект-источник&lt;br /&gt;// DistObj - объект -приемник&lt;br /&gt;// AssClassName - имя класса ассоциации&lt;br /&gt;// AssName - имя роли&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;var&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-identifier"&gt;i: integer;&lt;br /&gt;AssObjRel: TBoldObject;&lt;br /&gt;AssObjectDist, AssObjectSource: TBoldObject;&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;begin&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-comment"&gt;// здесь весьма нетрадиционный, но действенный способ проверки&lt;br /&gt;//множественности ассоциации (а точнее роли)&lt;br /&gt;// если аккуратно передавать параметры, то это и не нужно&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;if&lt;/span&gt;&lt;span class="pas1-space"&gt; Pos(&lt;/span&gt;&lt;span class="pas1-string"&gt;'List'&lt;/span&gt;&lt;span class="pas1-symbol"&gt;,SourceObj.BoldMemberByExpressionName[RoleName].ClassName)&amp;lt;&amp;gt;0 &lt;/span&gt;&lt;span class="pas1-reservedword"&gt;then&lt;br /&gt;begin&lt;br /&gt;if&lt;/span&gt;&lt;span class="pas1-space"&gt; DistObj.ClassName=SourceObj.ClassName &lt;/span&gt;&lt;span class="pas1-reservedword"&gt;then&lt;br /&gt;begin&lt;br /&gt;for&lt;/span&gt;&lt;span class="pas1-space"&gt; i := 0 &lt;/span&gt;&lt;span class="pas1-reservedword"&gt;to&lt;/span&gt;&lt;span class="pas1-space"&gt; (SourceObj.BoldMemberByExpressionName[RoleName] &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;as&lt;/span&gt;&lt;span class="pas1-space"&gt; TBoldObjectList).Count-1 &lt;/span&gt;&lt;span class="pas1-reservedword"&gt;do&lt;br /&gt;begin&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-comment"&gt;// если источник и приемник - экземпляры одного класса&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;if&lt;/span&gt;&lt;span class="pas1-space"&gt; Assigned((SourceObj.BoldMemberByExpressionName[RoleName] &lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;as&lt;/span&gt;&lt;span class="pas1-space"&gt; TBoldObjectList)[i] &lt;/span&gt;&lt;span class="pas1-reservedword"&gt;as&lt;/span&gt;&lt;span class="pas1-space"&gt; TBoldObject) &lt;/span&gt;&lt;span class="pas1-reservedword"&gt;then&lt;br /&gt;begin&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-identifier"&gt;AssObjRel:=(SourceObj.BoldMemberByExpressionName[RoleName] &lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;as&lt;/span&gt;&lt;span class="pas1-space"&gt; TBoldObjectList)[i] &lt;/span&gt;&lt;span class="pas1-reservedword"&gt;as&lt;/span&gt;&lt;span class="pas1-space"&gt; TBoldObject;&lt;br /&gt;(DistObj.BoldMemberByExpressionName[RoleName] &lt;/span&gt;&lt;span class="pas1-reservedword"&gt;as&lt;/span&gt;&lt;span class="pas1-space"&gt; TBoldObjectList).Add(AssObjRel);&lt;br /&gt;&lt;br /&gt;AssObjectDist:=LocateAssObject(AssClassName,DistObj, AssObjRel) &lt;/span&gt;&lt;span class="pas1-reservedword"&gt;as&lt;/span&gt;&lt;span class="pas1-space"&gt; TBoldObject;&lt;br /&gt;AssObjectSource:=LocateAssObject(AssClassName,SourceObj, AssObjRel) &lt;/span&gt;&lt;span class="pas1-reservedword"&gt;as&lt;/span&gt;&lt;span class="pas1-space"&gt; TBoldObject;&lt;br /&gt;&lt;br /&gt;TBoldCopyAndClone.BoldCopy(AssObjectDist,AssObjectSource,bcmAttributes,true);&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;end&lt;/span&gt;&lt;span class="pas1-symbol"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;end&lt;/span&gt;&lt;span class="pas1-symbol"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;end&lt;/span&gt;&lt;span class="pas1-symbol"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;end&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-comment"&gt;// я затрудняюсь это правильно сказать :(&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;else&lt;/span&gt;&lt;span class="pas1-space"&gt; ShowMessage(&lt;/span&gt;&lt;span class="pas1-string"&gt;'Ассоциация не множественная'&lt;/span&gt;&lt;span class="pas1-symbol"&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;end&lt;/span&gt;&lt;span class="pas1-symbol"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span class="pas1-reservedword"&gt;end&lt;/span&gt;&lt;span class="pas1-symbol"&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-114306432843925587?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/114306432843925587/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=114306432843925587' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/114306432843925587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/114306432843925587'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2006/03/bold.html' title='Bold. Копирование объектов.'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-114306369871231895</id><published>2006-03-22T23:41:00.000+02:00</published><updated>2006-03-22T23:41:38.740+02:00</updated><title type='text'>Alexander Bozhko Bold&amp;ECO blog</title><content type='html'>&lt;a href="http://mda-delphi.blogspot.com/"&gt;Alexander Bozhko Bold&amp;ECO blog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-114306369871231895?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/114306369871231895/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=114306369871231895' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/114306369871231895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/114306369871231895'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2006/03/alexander-bozhko-boldeco-blog.html' title='Alexander Bozhko Bold&amp;ECO blog'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-114250597962708622</id><published>2006-03-16T12:32:00.000+02:00</published><updated>2006-03-16T12:46:19.640+02:00</updated><title type='text'>Статья</title><content type='html'>Недавно на сайте издания Xakep была опубликована очередная моя статья.&lt;br /&gt;&lt;a href="http://www.xakep.ru/post/30508/default.asp"&gt;&lt;span class="textHeader4Black"&gt;Borland IDE: что дальше?&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Правда уже задним числом я нашел пару ляпов. Но в принципе... судите сами.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-114250597962708622?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/114250597962708622/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=114250597962708622' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/114250597962708622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/114250597962708622'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2006/03/blog-post_16.html' title='Статья'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24176048.post-114249904700657290</id><published>2006-03-16T10:25:00.000+02:00</published><updated>2006-03-16T10:55:05.026+02:00</updated><title type='text'>Новый блог</title><content type='html'>Прочувствовав все преимущества Google, я решил перевести свой  &lt;a href="http://mda-delphi.ru/blog/"&gt;старый блог&lt;/a&gt; сюда. Возможно, это простимулирует меня почаще писать.&lt;br /&gt;---&lt;br /&gt;В качестве теста я перенесу пару постов из старого блога, дабы освоиться.&lt;br /&gt;---&lt;br /&gt;Ну, и не забывайте посетить сайт &lt;a href="http://mda-delphi.ru"&gt;Russian ECO&amp;Bold Community&lt;/a&gt;, участником которого я являюсь.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24176048-114249904700657290?l=mda-delphi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mda-delphi.blogspot.com/feeds/114249904700657290/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24176048&amp;postID=114249904700657290' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/114249904700657290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24176048/posts/default/114249904700657290'/><link rel='alternate' type='text/html' href='http://mda-delphi.blogspot.com/2006/03/blog-post.html' title='Новый блог'/><author><name>Александр Божко</name><uri>http://www.blogger.com/profile/11799682423103283939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://3.bp.blogspot.com/_cJOcMqD6Ohc/ShkgKSveUVI/AAAAAAAAAEE/-gd5LN8aDa8/S220/image_sb_20.jpg'/></author><thr:total>0</thr:total></entry></feed>
