<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Видеоуроки по программированию для начинающих &#124; Проект Артёма Кашеварова</title>
	<atom:link href="http://programmerinfo.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://programmerinfo.ru</link>
	<description>Авторский мультимедиа проект Артёма Кашеварова о программировании и всём что с ним связано. Видеоуроки по программированию.</description>
	<lastBuildDate>Wed, 16 May 2012 11:39:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Сбор информации о системе</title>
		<link>http://programmerinfo.ru/sysinfo/</link>
		<comments>http://programmerinfo.ru/sysinfo/#comments</comments>
		<pubDate>Wed, 16 May 2012 11:38:24 +0000</pubDate>
		<dc:creator>Артём Кашеваров</dc:creator>
				<category><![CDATA[Уроки по Delphi]]></category>

		<guid isPermaLink="false">http://programmerinfo.ru/?p=955</guid>
		<description><![CDATA[Привет всем! Сегодня хочу вам рассказать о парочке незаменимых функций о которых вы можете не знать. Речь пойдет о том как собрать информацию о системе. Особенно ту которая отличается на разных компьютерах. Её папках, местонахождении системных(и не очень) файлов, устройствах, и пр. Этот урок я проведу в обычном текстовом виде, чтобы вы могли скопировать исходники и не париться по поводу ручного ввода. Итак начнём. Для начала объявим парочку констант: const folders = 'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders'; WinVers = 'Software\Microsoft\Windows\CurrentVersion'; Это ключи реестра в которых будем искать информацию. Мы записали их в константы чтобы не париться каждый раз с их вводом. Еще нам понадобиться вот функция котой мы будем быстро и безболезненно извлекать информацию из реестра(Можете не париться с её реализацией): function WinInfo(Root_Key: HKEY; Key_Open, Key_Read: string): string; var registry: TRegistry; begin //если Windows NT, открываем другой ключ if ((GetVersion and $80000000)=0) and (Key_Open=WinVers) then Key_Open:='SOFTWARE\Microsoft\Windows NT\CurrentVersion'; Registry := TRegistry.Create; try Registry.RootKey := Root_Key; Registry.OpenKey(Key_Open, False); Result := Registry.ReadString(Key_Read); finally Registry.Free; end; //если ничего не найдено, выводим "невозможно определить" if ResultEmptyStr then Result:=Key_read+': '+Result else Result:=Key_read+': невозможно определить'; end; Код который будет далее можете вставить в любой обработчик: Узнаем директорию Windows. var buffer:array [0..255] of char; windir:string; begin GetWindowsDirectory(buffer, SizeOf(buffer)); windir:=buffer; end; Имя [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://programmerinfo.ru/wp-content/uploads/2012/05/HardInfo1-300x300.png" alt="" title="" width="300" height="300" class="alignleft size-medium wp-image-968" />Привет всем!</p>
<p>Сегодня хочу вам рассказать о парочке незаменимых функций о которых вы можете не знать.</p>
<p>Речь пойдет о том как собрать информацию о системе. Особенно ту которая отличается на разных компьютерах. Её папках, местонахождении системных(и не очень) файлов, устройствах, и пр.<br />
Этот урок я проведу в обычном текстовом виде, чтобы вы могли скопировать исходники и не париться по поводу ручного ввода. </p>
<p>Итак начнём.<br />
Для начала объявим парочку констант:<br />
<code><br />
const<br />
folders = 'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders';<br />
WinVers = 'Software\Microsoft\Windows\CurrentVersion';</code></p>
<p>Это ключи реестра в которых будем искать информацию. Мы записали их в константы чтобы не париться каждый раз с их вводом.</p>
<p>Еще нам понадобиться вот функция котой мы будем быстро и безболезненно извлекать информацию из реестра(Можете не париться с её реализацией):</p>
<p><code>function WinInfo(Root_Key: HKEY; Key_Open, Key_Read: string): string;<br />
var<br />
registry: TRegistry;<br />
begin<br />
//если Windows NT, открываем другой ключ<br />
if ((GetVersion and $80000000)=0) and (Key_Open=WinVers) then<br />
Key_Open:='SOFTWARE\Microsoft\Windows NT\CurrentVersion';<br />
Registry := TRegistry.Create;<br />
try<br />
Registry.RootKey := Root_Key;<br />
Registry.OpenKey(Key_Open, False);<br />
Result := Registry.ReadString(Key_Read);<br />
finally<br />
Registry.Free;<br />
end;<br />
//если ничего не найдено, выводим "невозможно определить"<br />
if Result<>EmptyStr then Result:=Key_read+': '+Result else Result:=Key_read+': невозможно определить';<br />
end;</code></p>
<p>Код который будет далее можете вставить в любой обработчик:</p>
<p><strong>Узнаем директорию Windows.</strong><br />
<code>var<br />
buffer:array [0..255] of char;<br />
windir:string;<br />
begin<br />
GetWindowsDirectory(buffer, SizeOf(buffer));<br />
windir:=buffer;<br />
end;</code></p>
<p><strong>Имя пользователя и версия ОС</strong><br />
<code>var<br />
OS,User:string;<br />
begin<br />
User:=WinInfo(HKEY_LOCAL_MACHINE,WinVers,'RegisteredOwner');<br />
OS:=WinInfo(HKEY_LOCAL_MACHINE,WinVers,'ProductName');<br />
end;</code></p>
<p><strong>Пути к системным папкам</strong><br />
<code>var<br />
Desktop,Favorites,Fonts,AppData,Music,Pictures,Personal,Menu:string<br />
begin<br />
Desktop:=WinInfo(HKEY_CURRENT_USER,folders,'Desktop'); //Функция возвращает путь к папке рабочего стола<br />
Favorites:=WinInfo(HKEY_CURRENT_USER,folders,'Favorites'); //Функция возвращает путь к папке c избранным<br />
Fonts:=WinInfo(HKEY_CURRENT_USER,folders,'Fonts'); //Функция возвращает путь к папке со шрифтами<br />
AppData:=WinInfo(HKEY_CURRENT_USER,folders,'Local AppData'); //Функция возвращает путь к системной папке AppData/Local/ Music:=WinInfo(HKEY_CURRENT_USER,folders,'My Music'); //Функция возвращает путь к папке с музыкой<br />
Pictures:=WinInfo(HKEY_CURRENT_USER,folders,'My Pictures'); //Функция возвращает путь к папке с картинками<br />
Personal:=WinInfo(HKEY_CURRENT_USER,folders,'Personal'); //Функция возвращает путь к папке с документами<br />
Menu:=WinInfo(HKEY_CURRENT_USER,folders,'Start Menu'); //Функция возвращает путь к папке в которой находятся программы из меню пуск<br />
end;</code></p>
<p><strong>Получаем информацию о дисках(на форме должен быть компонент Memo1)</strong><br />
<code>var<br />
drive:string;<br />
i:integer;<br />
a: DWord;<br />
SerialNum: PDWord;<br />
buffer:array [0..255] of char;<br />
begin<br />
GetWindowsDirectory(buffer, SizeOf(buffer)); // заполняем buffer</p>
<p>//Получаем информацию о дисках<br />
for i := 0 to 25 do<br />
if (GetLogicalDrives and (1 shl i)) <> 0 then begin<br />
Drive:=Char(Ord('A') + i) + ':\';<br />
case GetDriveType(PChar(Drive)) of<br />
DRIVE_REMOVABLE: Memo1.Lines.Add(Drive+' (гибкий диск)');<br />
DRIVE_CDROM: Memo1.Lines.Add(Drive+' (CD-ROM)');<br />
DRIVE_FIXED: begin<br />
//находим серийный номер жесткого диска<br />
new(SerialNum);<br />
if getVolumeInformation(pChar(Drive),buffer,sizeof(buffer),SerialNum,a,a,nil,0) then<br />
Memo1.Lines.Add(Drive+' (жесткий диск, S\N '+Inttostr(SerialNum^)+')');<br />
end;<br />
else Memo1.Lines.Add(Drive+' (неизвестный диск');<br />
end;<br />
end;<br />
end;</code></p>
<p>В коде использован компонент Memo1. Вы при желании можете выводить куда угодно.</p>
<p><strong>Информация о памяти(Также должен быть компонент memo1)</strong><br />
<code>var<br />
ms: TMemoryStatus<br />
begin<br />
GlobalMemoryStatus(MS);<br />
Memo1.Lines.Add('Оперативная память: '+FormatFloat('#,###" KB"', MS.dwTotalPhys / 1024));<br />
Memo1.Lines.Add('Свободно на жестком диске: '+FormatFloat('#,###" байт"',DiskFree(3)));<br />
//"3" указывает на диск C:\<br />
Memo1.Lines.Add('Объем жесткого диска: '+FormatFloat('#,###" байт"',DiskSize(3)));<br />
Memo1.Lines.Add('');<br />
end;</code></p>
<p>Фух&#8230; ну все. Если найдете ошибки &#8212; пишите в комментах.<br />
До встречи!</p>
<img src="http://programmerinfo.ru/?ak_action=api_record_view&id=955&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://programmerinfo.ru/sysinfo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Основы шифрования</title>
		<link>http://programmerinfo.ru/shifr/</link>
		<comments>http://programmerinfo.ru/shifr/#comments</comments>
		<pubDate>Sat, 05 May 2012 09:03:21 +0000</pubDate>
		<dc:creator>Артём Кашеваров</dc:creator>
				<category><![CDATA[Видеоуроки от пользователей]]></category>
		<category><![CDATA[Разное]]></category>
		<category><![CDATA[Уроки по Delphi]]></category>

		<guid isPermaLink="false">http://programmerinfo.ru/?p=950</guid>
		<description><![CDATA[Добрый день! Буквально 5 минут назад мы с Рахимом закончили подготавливать для вас свежее видео. В нём рассказывается об основах шифрования текста. Самое то для новичков! Смотреть видео: Скачать видео Видео для вас подготовили Рахим Абдусалимов и Артём Кашеваров.]]></description>
			<content:encoded><![CDATA[<p>Добрый день! </p>
<p>Буквально 5 минут назад мы с Рахимом закончили подготавливать для вас свежее видео.</p>
<p>В нём рассказывается об основах шифрования текста. Самое то для новичков! </p>
<p>Смотреть видео:<br />
<center><a  href="http://www.programmerinfo.ru/userslessons/shifr/capture-1.mp4" style="display:block;width:500px;height:375px" id="player"></a> <script> flowplayer("player", "http://programmerinfo.ru/flowplayer-3.2.5.swf",  { clip: { autoPlay: false, autoBuffering: true } });
</script></center><br />
<a href="http://www.programmerinfo.ru/userslessons/shifr/capture-1.mp4" target="_blank">Скачать видео</a></p>
<p>Видео для вас подготовили Рахим Абдусалимов и Артём Кашеваров.</p>
<img src="http://programmerinfo.ru/?ak_action=api_record_view&id=950&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://programmerinfo.ru/shifr/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
<enclosure url="http://www.programmerinfo.ru/userslessons/shifr/capture-1.mp4" length="6734947" type="video/mp4" />
		</item>
		<item>
		<title>Вас тоже достали просьбы разобраться с чьим-то компьютером? Здесь есть решение!</title>
		<link>http://programmerinfo.ru/fuuu/</link>
		<comments>http://programmerinfo.ru/fuuu/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 17:25:54 +0000</pubDate>
		<dc:creator>Артём Кашеваров</dc:creator>
				<category><![CDATA[Поржать]]></category>
		<category><![CDATA[Разное]]></category>

		<guid isPermaLink="false">http://programmerinfo.ru/?p=943</guid>
		<description><![CDATA[Привет! Сегодня предоставляю вам оригинальный способ отделаться от всех надоедливых просьб разобраться с чьим-то компьютером! Если кто-то вас достает подобными просьбами &#8212; распечатайте и отдайте ему. XD]]></description>
			<content:encoded><![CDATA[<p>Привет! Сегодня предоставляю вам оригинальный способ отделаться от всех надоедливых просьб разобраться с чьим-то компьютером! Если кто-то вас достает подобными просьбами &#8212; распечатайте и отдайте ему. XD<br />
<a href="http://programmerinfo.ru/wp-content/uploads/2012/04/Hxz0_uIAJWs.jpg"><img src="http://programmerinfo.ru/wp-content/uploads/2012/04/Hxz0_uIAJWs.jpg" alt="" title="" width="718" height="807" class="aligncenter size-full wp-image-944" /></a></p>
<img src="http://programmerinfo.ru/?ak_action=api_record_view&id=943&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://programmerinfo.ru/fuuu/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Программно вызываем завершение работы компьютера и открываем меню пуск</title>
		<link>http://programmerinfo.ru/%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%bd%d0%be-%d0%b2%d1%8b%d0%b7%d1%8b%d0%b2%d0%b0%d0%b5%d0%bc-%d0%b7%d0%b0%d0%b2%d0%b5%d1%80%d1%88%d0%b5%d0%bd%d0%b8%d0%b5-%d1%80%d0%b0%d0%b1%d0%be/</link>
		<comments>http://programmerinfo.ru/%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%bd%d0%be-%d0%b2%d1%8b%d0%b7%d1%8b%d0%b2%d0%b0%d0%b5%d0%bc-%d0%b7%d0%b0%d0%b2%d0%b5%d1%80%d1%88%d0%b5%d0%bd%d0%b8%d0%b5-%d1%80%d0%b0%d0%b1%d0%be/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 14:03:06 +0000</pubDate>
		<dc:creator>Артём Кашеваров</dc:creator>
				<category><![CDATA[Видеоуроки от пользователей]]></category>

		<guid isPermaLink="false">http://programmerinfo.ru/?p=927</guid>
		<description><![CDATA[Привет всем! В этом видео: - программно вызываем окно завершения работы windows - программно нажимаем на кнопку пуск Смотрим видео: Скачать видео Видео для вас подготовил Рахим Абдусалимов rahim_gonzales@mail.ru]]></description>
			<content:encoded><![CDATA[<p>Привет всем! </p>
<p>В этом видео:</p>
<p><strong>- программно вызываем окно завершения работы windows<br />
- программно нажимаем на кнопку пуск </strong></p>
<p>Смотрим видео:</p>
<p><center><a  href="http://www.programmerinfo.ru/userslessons/poweroffpusk/capture-1.mp4" style="display:block;width:500px;height:375px" id="player"></a> <script> flowplayer("player", "http://programmerinfo.ru/flowplayer-3.2.5.swf",  { clip: { autoPlay: false, autoBuffering: true } });
</script></center><br />
<a href="http://www.programmerinfo.ru/userslessons/poweroffpusk/capture-1.mp4" target="_blank">Скачать видео</a></p>
<p>Видео для вас подготовил Рахим Абдусалимов<br />
rahim_gonzales@mail.ru</p>
<img src="http://programmerinfo.ru/?ak_action=api_record_view&id=927&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://programmerinfo.ru/%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%bd%d0%be-%d0%b2%d1%8b%d0%b7%d1%8b%d0%b2%d0%b0%d0%b5%d0%bc-%d0%b7%d0%b0%d0%b2%d0%b5%d1%80%d1%88%d0%b5%d0%bd%d0%b8%d0%b5-%d1%80%d0%b0%d0%b1%d0%be/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://www.programmerinfo.ru/userslessons/poweroffpusk/capture-1.mp4" length="4350248" type="video/mp4" />
		</item>
		<item>
		<title>Как обратить цвета на экране?</title>
		<link>http://programmerinfo.ru/invertscreen/</link>
		<comments>http://programmerinfo.ru/invertscreen/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 16:22:50 +0000</pubDate>
		<dc:creator>Артём Кашеваров</dc:creator>
				<category><![CDATA[Разное]]></category>

		<guid isPermaLink="false">http://programmerinfo.ru/?p=916</guid>
		<description><![CDATA[Продолжаю тему мелких компьютерных приколов. Сегодня я расскажу вам как инвертировать все цвета на экране: Смотреть видео: Скачать видео Вот и всё. У нас тут выпало дофига снега. Машина из за холода отказалась заводиться. Буду менять аккумулятор, давно уже пора =( А то всё &#171;прикуриваю&#187; и &#171;прикуриваю&#187; от других машин. А как ваши железные кони поживают? Ответьте в комментах]]></description>
			<content:encoded><![CDATA[<p><a href="http://programmerinfo.ru/wp-content/uploads/2012/01/Untitled-1.jpg"><img src="http://programmerinfo.ru/wp-content/uploads/2012/01/Untitled-1-150x150.jpg" alt="" title="" width="150" height="150" class="alignleft size-thumbnail wp-image-918" /></a><br />
Продолжаю тему мелких компьютерных приколов. </p>
<p>Сегодня я расскажу вам как инвертировать все цвета на экране:</p>
<p>Смотреть видео:</p>
<p><center><a  href="http://www.programmerinfo.ru/rassilka/invertscreen/invertscreen.mp4" style="display:block;width:500px;height:282px" id="player"></a> <script> flowplayer("player", "http://programmerinfo.ru/flowplayer-3.2.5.swf",  { clip: { autoPlay: false, autoBuffering: true } });
</script></center><br />
<a href="http://www.programmerinfo.ru/rassilka/invertscreen/invertscreen.mp4" target="_blank">Скачать видео</a></p>
<p>Вот и всё.<br />
У нас тут выпало дофига снега. Машина из за холода отказалась заводиться. Буду менять аккумулятор, давно уже пора =(<br />
А то всё &#171;прикуриваю&#187; и &#171;прикуриваю&#187; от других машин. А как ваши железные кони поживают?<br />
Ответьте в комментах</p>
<img src="http://programmerinfo.ru/?ak_action=api_record_view&id=916&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://programmerinfo.ru/invertscreen/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
<enclosure url="http://www.programmerinfo.ru/rassilka/invertscreen/invertscreen.mp4" length="18144215" type="video/mp4" />
		</item>
		<item>
		<title>Издеваемся над мышью (Delphi)</title>
		<link>http://programmerinfo.ru/mouse/</link>
		<comments>http://programmerinfo.ru/mouse/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 13:48:29 +0000</pubDate>
		<dc:creator>Артём Кашеваров</dc:creator>
				<category><![CDATA[Уроки для начинающих]]></category>
		<category><![CDATA[Уроки по Delphi]]></category>

		<guid isPermaLink="false">http://programmerinfo.ru/?p=913</guid>
		<description><![CDATA[Хай! Подготовил новое видео, из него вы узнаете: - Как ограничить перемещение мыши определённой областью - Как отключить отображение курсора? - Как поменять местами левую кнопку мыши с правой? - Как программно переместить положение мыши? Смотрим видео: Скачать видео Поделитесь видеозаписью через социальные кнопки ниже, буду вам очень благодарен]]></description>
			<content:encoded><![CDATA[<p>Хай!</p>
<p>Подготовил новое видео, из него вы узнаете:</p>
<p>- Как ограничить перемещение мыши определённой областью<br />
- Как отключить отображение курсора?<br />
- Как поменять местами левую кнопку мыши с правой?<br />
- Как программно переместить положение мыши?</p>
<p>Смотрим видео:<br />
<center><a  href="http://www.programmerinfo.ru/rassilka/mouse/mouse.mp4" style="display:block;width:500px;height:282px" id="player"></a> <script> flowplayer("player", "http://programmerinfo.ru/flowplayer-3.2.5.swf",  { clip: { autoPlay: false, autoBuffering: true } });
</script></center><br />
<a href="http://www.programmerinfo.ru/rassilka/mouse/mouse.mp4" target="_blank">Скачать видео</a></p>
<p>Поделитесь видеозаписью через социальные кнопки ниже, буду вам очень благодарен <img src="http://programmerinfo.ru/wp-content/plugins/qipsmiles/smiles/smile.gif"  alt="=)" title="=)"/> </p>
<img src="http://programmerinfo.ru/?ak_action=api_record_view&id=913&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://programmerinfo.ru/mouse/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
<enclosure url="http://www.programmerinfo.ru/rassilka/mouse/mouse.mp4" length="27905520" type="video/mp4" />
		</item>
		<item>
		<title>Учим компьютер говорить (Delphi)</title>
		<link>http://programmerinfo.ru/speak/</link>
		<comments>http://programmerinfo.ru/speak/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 18:51:44 +0000</pubDate>
		<dc:creator>Артём Кашеваров</dc:creator>
				<category><![CDATA[Разное]]></category>

		<guid isPermaLink="false">http://programmerinfo.ru/?p=901</guid>
		<description><![CDATA[16 января. В Минводах ни грамма снега! Сразу ну ум приходит известный интернет мем &#8212; &#171;Зима не будет!&#187;. Блин ну хоть бы чуть чуть выпал, а то реально скоро будем грязевика вместо снеговика лепить =)) Ок, давайте к делу: Сегодня подготовил видео о том как научить компьютер разговаривать. В прошлый раз товарищ Кирилл Шин делал подобное видео на C#. Это видео для языка Delphi. Видео ниже &#8212; Скачать видео Если есть что добавить &#8212; пишите в комментах. P.S. Буду рад если поделитесь с другими используя социальные кнопки ниже.]]></description>
			<content:encoded><![CDATA[<p><img src="http://programmerinfo.ru/wp-content/uploads/2012/01/images1.jpg" alt="" title="images" width="250" height="250" class="aligncenter size-full wp-image-906" />16 января. В Минводах ни грамма снега! Сразу ну ум приходит известный интернет мем &#8212; &#171;Зима не будет!&#187;. Блин ну хоть бы чуть чуть выпал, а то реально скоро будем грязевика вместо снеговика лепить =))</p>
<p>Ок, давайте к делу:</p>
<p>Сегодня подготовил видео о том как научить компьютер разговаривать. <img src="http://programmerinfo.ru/wp-content/plugins/qipsmiles/smiles/smile.gif"  alt="=)" title="=)"/> <br />
В прошлый раз товарищ Кирилл Шин делал подобное видео на C#. Это видео для языка Delphi.</p>
<p>Видео ниже &#8212; </p>
<p><center><a  href="http://www.programmerinfo.ru/rassilka/speak/speak.mp4" style="display:block;width:500px;height:282px" id="player"></a> <script> flowplayer("player", "http://programmerinfo.ru/flowplayer-3.2.5.swf",  { clip: { autoPlay: false, autoBuffering: true } });
</script></center><br />
<a href="http://www.programmerinfo.ru/rassilka/speak/speak.mp4" target="_blank">Скачать видео</a></p>
<p>Если есть что добавить &#8212; пишите в комментах.<br />
P.S. Буду рад если поделитесь с другими используя социальные кнопки ниже.</p>
<img src="http://programmerinfo.ru/?ak_action=api_record_view&id=901&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://programmerinfo.ru/speak/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
<enclosure url="http://www.programmerinfo.ru/rassilka/speak/speak.mp4" length="14294316" type="video/mp4" />
		</item>
		<item>
		<title>Как работать на Delphi удобно? =)</title>
		<link>http://programmerinfo.ru/%d0%ba%d0%b0%d0%ba-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d1%82%d1%8c-%d0%bd%d0%b0-delphi-%d1%83%d0%b4%d0%be%d0%b1%d0%bd%d0%be/</link>
		<comments>http://programmerinfo.ru/%d0%ba%d0%b0%d0%ba-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d1%82%d1%8c-%d0%bd%d0%b0-delphi-%d1%83%d0%b4%d0%be%d0%b1%d0%bd%d0%be/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 12:25:09 +0000</pubDate>
		<dc:creator>Артём Кашеваров</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[Уроки для начинающих]]></category>
		<category><![CDATA[Уроки по Delphi]]></category>

		<guid isPermaLink="false">http://programmerinfo.ru/?p=899</guid>
		<description><![CDATA[Вот тут пусть не совсем актуальная но крайне полезная информация с одного старенького сайта: Запуск Delphi без создания нового проекта Если вы не хотите, чтобы каждый раз при запуске Дельфи у вас открывался пустой проект, пропишите в свойствах ярлыка следующую командную строку: delphi6.exe -np А если добавить еще один параметр, то Дельфи будет стартовать без своего окна-логотипа: delphi6.exe -np -ns Запомнить открытые закладки Если вы хотите, чтобы Delphi запомнила, с какими модулями вы работали, и автоматически открыла бы их при вашем следующем возвращении к проекту, зайдите в меню и поставьте галочки: Tools > Environment options > Preferences > Autosave options > Project desktop Кстати, при этом будут запоминаться не только открытые юниты, но и установленные в них breakpoints! Как поставить BreakPoint Нужно всего-то щелкнуть мышкой слева от окна кода &#8212; появится красный кружок и строка также станет красной. Теперь можно запустить программу (F9): она дойдет до этой строки и останавливается. Далее можно продолжить выполнение по действиям (F7) или по блокам (F8). Разница в том, что по F7 она будет заходить во все подпрограммы и составные конструкции, а по F8 &#8212; довольно шустро перепрыгивать через них. В процессе трассировки можно навести курсор на любую переменную в тексте программы, и ее текущее [...]]]></description>
			<content:encoded><![CDATA[<p>Вот тут пусть не совсем актуальная но крайне полезная информация с одного старенького сайта:</p>
<p><strong>Запуск Delphi без создания нового проекта </strong><br />
Если вы не хотите, чтобы каждый раз при запуске Дельфи у вас открывался пустой проект, пропишите в свойствах ярлыка следующую командную строку:<br />
delphi6.exe -np </p>
<p>А если добавить еще один параметр, то Дельфи будет стартовать без своего окна-логотипа:<br />
delphi6.exe -np -ns </p>
<p><strong>Запомнить открытые закладки </strong><br />
Если вы хотите, чтобы Delphi запомнила, с какими модулями вы работали, и автоматически открыла бы их при вашем следующем возвращении к проекту, зайдите в меню и поставьте галочки:<br />
Tools > Environment options > Preferences > Autosave options > Project desktop </p>
<p>Кстати, при этом будут запоминаться не только открытые юниты, но и установленные в них breakpoints! </p>
<p><strong>Как поставить BreakPoint</strong><br />
Нужно всего-то щелкнуть мышкой слева от окна кода &#8212; появится красный кружок и строка также станет красной. Теперь можно запустить программу (F9): она дойдет до этой строки и останавливается. Далее можно продолжить выполнение по действиям (F7) или по блокам (F8). Разница в том, что по F7 она будет заходить во все подпрограммы и составные конструкции, а по F8 &#8212; довольно шустро перепрыгивать через них. </p>
<p>В процессе трассировки можно навести курсор на любую переменную в тексте программы, и ее текущее значение отобразится в виде всплывающего хинта!<br />
Значение переменной можно посмотреть и другим способом (в специальном окне):<br />
Ctrl + F7 </p>
<p><strong>Если задолбали exception </strong><br />
Бывает так, что какой-то блок кода выдает исключительные ситуации, которые мешают запускать проект. Эти неприятные события можно временно отключить! Для этого ставим 1-ый BreakPoint в начале блока, в его свойствах ставим галочку:<br />
Breakpoint Properties > Advanced > Actions > Ignore subsequent exceptions </p>
<p>Сразу же в конце блока ставим 2-ой BreakPoint, и в его свойствах ставим галочку:<br />
Breakpoint Properties > Advanced > Actions > Handle subsequent exceptions </p>
<p>Теперь это место будет проскакиваться без задержек и всплывающих диалогов подтверждений! </p>
<p><strong>Как поставить Якорь </strong><br />
Предположим, у вас уже объемный модуль, и вам нужно что-то посмотреть в каком-то месте далеко выше или ниже, а затем быстро вернуться к текущей позиции.<br />
Ctrl + Shift + цифра 0..9 </p>
<p>Слева появится маркер с соответствующей цифрой. Теперь, чтобы вернуться сюда из любого места модуля, достаточно нажать<br />
Ctrl + цифра 0..9 </p>
<p>В каждом модуле можно поставить до 10 подобных якорей (цифры 0..9) и мгновенно перемещаться между ними! </p>
<p><strong>Быстрое перемещение от заголовка подпрограммы к ее телу (и обратно)</strong><br />
Вот вы пробегаете по секции описания, находите заголовок нужной функции или процедуры, хотите перейти на нее. Но ее тело может находится тысячью строками ниже!<br />
Ctrl + Shift + Стрелка Вниз </p>
<p>И вы сразу же оказываетесь в ее теле, прямо под строкой begin.<br />
Хотите вернуться обратно? Нет ничего проще:<br />
Ctrl + Shift + Стрелка Вверх </p>
<p>Но вот новая неприятность: подпрограмма в коде вызывается из другого модуля! Ничего страшного:<br />
Ctrl + Щелчок мышью </p>
<p><strong>Как быстро наделать пустых подпрограмм </strong><br />
Набив вручную несколько заголовков с описаниями подпрограмм, вы решили перейти к их телам. Неужели тоже вручную? Ни за что!<br />
CTRL + SHIFT + C </p>
<p>Это же верно и для недостающих методов класса! </p>
<p><strong>Изменить отступ для форматирования блока </strong><br />
Правила хорошего тона предписывают делать отступы для каждого логического уровня блока команд. Сделать-то не сложно, но как побыстрее исправить при ошибке? Выделяем фрагмент кода и&#8230; двигаем влево или вправо:<br />
держим CTRL + K, нажимаем U или I </p>
<p><strong>Шаблон составной конструкции </strong><br />
Если взять любую составную конструкцию (массив, кейс, класс), то в ее описании будет много статических повторяющихся символов. Так не будем печатать их руками, а просто выберем и вставим нужный шаблон:<br />
Ctrl + J </p>
<p>Если даже выбирать не хочется, то можно еще быстрее: пишем сокращение и нажимаем всю ту же комбинацию клавиш! </p>
<p><strong>Получить уникальный GUID </strong><br />
В некоторых случаях, например при создании интерфейса (программного, межклассового), необходимо указать уникальный идентификатор вида: ['{50564FE6-A3F0-46F5-B142-4FBC14D06915}']<br />
Ctrl + Shift + G </p>
<p>Сброс программы<br />
Ну что же, уже все отлично, точнее &#8212; почти все. Программа внезапно заглючила и отказала закрываться. Экстренный сброс:<br />
Ctrl + F2 </p>
<p><strong>ТОЛЬКО НЕ УМИРАЙ! </strong><br />
Не удержался я, все же приведу один секрет из области программирования. Программы, которые выполняют длительные обработки в циклах (например математические вычисления), выглядят повисшими или умершими, т.к. не реагируют ни на что до завершения цикла.<br />
Чтобы все же время от времени возвращать их к жизни, позволив например среагировать на нажатие кнопки ОТМЕНА или обработать другие накопившиеся события, нужно в том долгом цикле изредка выполнять команду<br />
Application.ProcessMessages;</p>
<p>На этом всем спасибо, все свободны <img src="http://programmerinfo.ru/wp-content/plugins/qipsmiles/smiles/smile.gif"  alt="=)" title="=)"/> </p>
<img src="http://programmerinfo.ru/?ak_action=api_record_view&id=899&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://programmerinfo.ru/%d0%ba%d0%b0%d0%ba-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d1%82%d1%8c-%d0%bd%d0%b0-delphi-%d1%83%d0%b4%d0%be%d0%b1%d0%bd%d0%be/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Blizard и EA Games нервно курят в сторонке&#8230;</title>
		<link>http://programmerinfo.ru/kkrieger/</link>
		<comments>http://programmerinfo.ru/kkrieger/#comments</comments>
		<pubDate>Wed, 28 Dec 2011 15:02:41 +0000</pubDate>
		<dc:creator>Артём Кашеваров</dc:creator>
				<category><![CDATA[Разное]]></category>

		<guid isPermaLink="false">http://programmerinfo.ru/?p=885</guid>
		<description><![CDATA[Blizard и EA Games нервно курят в сторонке, ровно как и остальные производители игр Сейчас я объясню вам что присходит: Мало кто из вас знает но уже давным давно была выпущена гениальная по своей сути игра! Это 3D экшен использующий все современные технологии с ахрененной графикой и весом всего в 96 Килобайт! Я не отпечатался эта игра действительно весит меньше чем средняя игра на Dendy. Гляньте скриншоты: Игру можно скачать кликнув здесь Режим совместимости с Windows XP включить не забудьте. Крайне рекомендуется к ознакомлению всем программистам без исключения. Вот так вот. Пока мы покупаем игры по 8-20 Гб. Есть вот такие гении программирования которые создают такие проекты. Кстати создатели получили награду за свои достижения на German Game Developer Award: Все игровые ресурсы — текстуры, модели, геометрия уровня, музыка и звук — генерируются с помощью различных алгоритмов. Текстуры генерируются в реальном времени. Музыка и звук в игре синтезируются и воспроизводятся так же в реальном времени многофункциональным синтезатором V2 собственной разработки. Исполняемый файл игры запакован программой kkrunchy. По словам разработчиков, игра занимала бы около 200—300 МБ, если бы использовалось традиционное хранение предварительно подготовленных игровых ресурсов. Берите с них пример! Жду ваших комментариев по этому поводу.]]></description>
			<content:encoded><![CDATA[<p>Blizard и EA Games нервно курят в сторонке, ровно как и остальные производители игр <img src="http://programmerinfo.ru/wp-content/plugins/qipsmiles/smiles/smile.gif"  alt="=)" title="=)"/> </p>
<p>Сейчас я объясню вам что присходит:<br />
Мало кто из вас знает но уже давным давно была выпущена гениальная по своей сути игра!<br />
Это 3D экшен использующий все современные технологии с ахрененной графикой и весом всего в 96 Килобайт!</p>
<p>Я не отпечатался эта игра действительно весит меньше чем средняя игра на Dendy.<br />
Гляньте скриншоты:<br />
<a href="http://programmerinfo.ru/wp-content/uploads/2011/12/images.jpg"><img src="http://programmerinfo.ru/wp-content/uploads/2011/12/images.jpg" alt="" title="images" width="286" height="176" class="aligncenter size-full wp-image-886" /></a><a href="http://programmerinfo.ru/wp-content/uploads/2011/12/kkrieger003.jpg"><img src="http://programmerinfo.ru/wp-content/uploads/2011/12/kkrieger003-300x225.jpg" alt="" title="kkrieger003" width="300" height="225" class="aligncenter size-medium wp-image-887" /></a></p>
<p>Игру можно скачать <a href='http://programmerinfo.ru/wp-content/uploads/2011/12/pno0001.exe'>кликнув здесь</a> Режим совместимости с Windows XP включить не забудьте.<br />
Крайне рекомендуется к ознакомлению всем программистам без исключения.</p>
<p>Вот так вот. Пока мы покупаем игры по 8-20 Гб. Есть вот такие гении программирования которые создают такие проекты.<br />
Кстати создатели получили награду за свои достижения на German Game Developer Award: <a href="http://programmerinfo.ru/wp-content/uploads/2011/12/3.jpg"><img src="http://programmerinfo.ru/wp-content/uploads/2011/12/3-300x224.jpg" alt="" title="" width="300" height="224" class="aligncenter size-medium wp-image-890" /></a></p>
<p>Все игровые ресурсы — текстуры, модели, геометрия уровня, музыка и звук — генерируются с помощью различных алгоритмов. Текстуры генерируются в реальном времени. Музыка и звук в игре синтезируются и воспроизводятся так же в реальном времени многофункциональным синтезатором V2 собственной разработки. Исполняемый файл игры запакован программой kkrunchy. По словам разработчиков, игра занимала бы около 200—300 МБ, если бы использовалось традиционное хранение предварительно подготовленных игровых ресурсов.</p>
<p>Берите с них пример!<br />
Жду ваших комментариев по этому поводу. <img src="http://programmerinfo.ru/wp-content/plugins/qipsmiles/smiles/smile.gif"  alt="=)" title="=)"/> </p>
<img src="http://programmerinfo.ru/?ak_action=api_record_view&id=885&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://programmerinfo.ru/kkrieger/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>Как делать массивы если памяти мало и её очень жалко?</title>
		<link>http://programmerinfo.ru/dynamarray/</link>
		<comments>http://programmerinfo.ru/dynamarray/#comments</comments>
		<pubDate>Mon, 26 Dec 2011 00:55:54 +0000</pubDate>
		<dc:creator>Артём Кашеваров</dc:creator>
				<category><![CDATA[Разное]]></category>

		<guid isPermaLink="false">http://programmerinfo.ru/?p=876</guid>
		<description><![CDATA[Проблемы с оптимизацией современных программистов волнуют всё реже и реже. Тем не менее настоящий программист обязательно должен следить чтоб его программа не расходовала уйму памяти как последние версии Firefox (к слову &#8212; Ух и достал же он меня, переехал на Chrome и доволен как слон ). Как делать массивы если памяти мало и её очень жалко? Конечно с применением динамических массивов! В свеженьком видео всё описано: Скачать видео Есть еще один способ создавать динамические массивы &#8212; через операции напрямую связанные с памятью и адресами в памяти. Но на мой взгляд такой метод излишне брутален и не оправдан, так как читается он в коде заметно сложнее. Впрочем если кому то нужно будет только скажите &#8212; запишу. Бай! P.S. Чуть не забыл &#8212; С наступающим вас, друзья! P.P.S. Вспомнился тут каламбурчик в тему: — Почему программисты всегда путают Хеллоуин и Рождество? — Потому что Oct 31 == Dec 25!]]></description>
			<content:encoded><![CDATA[<p>Проблемы с оптимизацией современных программистов волнуют всё реже и реже. Тем не менее настоящий программист обязательно должен следить чтоб его программа не расходовала уйму памяти как последние версии Firefox (к слову &#8212; Ух и достал же он меня, переехал на Chrome и доволен как слон <img src='http://programmerinfo.ru/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ).</p>
<p>Как делать массивы если памяти мало и её очень жалко?<br />
Конечно с применением динамических массивов!</p>
<p>В свеженьком видео всё описано:<br />
<center><a  href="http://www.programmerinfo.ru/rassilka/dynamarray/dynamarray.mp4" style="display:block;width:500px;height:282px" id="player"></a> <script> flowplayer("player", "http://programmerinfo.ru/flowplayer-3.2.5.swf",  { clip: { autoPlay: false, autoBuffering: true } });
</script></center><br />
<a href="http://www.programmerinfo.ru/rassilka/dynamarray/dynamarray.mp4" target="_blank">Скачать видео</a></p>
<p>Есть еще один способ создавать динамические массивы &#8212; через операции напрямую связанные с памятью и адресами в памяти. Но на мой взгляд такой метод излишне брутален и не оправдан, так как читается он в коде заметно сложнее. Впрочем если кому то нужно будет только скажите &#8212; запишу. <img src="http://programmerinfo.ru/wp-content/plugins/qipsmiles/smiles/smile.gif"  alt="=)" title="=)"/> </p>
<p>Бай!<br />
P.S. Чуть не забыл &#8212; С наступающим вас, друзья!</p>
<p>P.P.S. Вспомнился тут каламбурчик в тему:<br />
— Почему программисты всегда путают Хеллоуин и Рождество?<br />
— Потому что Oct 31 == Dec 25! </p>
<img src="http://programmerinfo.ru/?ak_action=api_record_view&id=876&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://programmerinfo.ru/dynamarray/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
<enclosure url="http://www.programmerinfo.ru/rassilka/dynamarray/dynamarray.mp4" length="28904088" type="video/mp4" />
		</item>
	</channel>
</rss>

