<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><title>viewcode</title><link>http://viewcode.blog.ru/</link><description>viewcode - Блог.ру</description><lastBuildDate>Tue, 16 Jun 2009 16:01:05 GMT</lastBuildDate><generator>Блог.ру</generator><item><guid isPermaLink="true">http://viewcode.blog.ru/76478515.html</guid><pubDate>Tue, 16 Jun 2009 16:01:05 GMT</pubDate><title>Каталог Тематических Блогов Рунета</title><link>http://viewcode.blog.ru/76478515.html</link><description>Друзья, на днях наткнулся на новый каталог, ещё не испорченный всяким Г… Так что вперёд на регистрацию. Я уже зарегился! =) 

&lt;a href="http://web2d.ru/" target="_blank" title="Каталог Тематических Блогов Рунета"&gt;Каталог &amp;laquo;Тематических Блогов Рунета&amp;raquo;&lt;/a&gt;</description><category>каталоги</category></item><item><guid isPermaLink="true">http://viewcode.blog.ru/68522595.html</guid><pubDate>Tue, 12 May 2009 06:29:20 GMT</pubDate><title>Как перемещать форму за любой компонент в Delphi?</title><link>http://viewcode.blog.ru/68522595.html</link><description>Сегодня я расскажу как можно двигать форму за любой её компонент. Порой бывает, что границы формы при разработке приложения необходимо скрыть и замостить форму каким-нибудь изображением. Так вот, чтобы эта форма была подвижной, нужно перемещать её за это изображение. Так вот, ради примера и возьмём этот случай!&lt;br&gt;Код будет очень коротким. Прописываем для события MouseDown:&lt;br&gt;[code lang=delphi]procedure TFMain.Image3MouseDown(Sender: TObject; Button: TMouseButton;&lt;br&gt;&amp;nbsp; Shift: TShiftState; X, Y: Integer);&lt;br&gt;&amp;nbsp; const sc_dragmove = $f012;&lt;br&gt;begin&lt;br&gt;&amp;nbsp; releasecapture;&lt;br&gt;&amp;nbsp; FMain.perform(wm_syscommand, sc_dragmove, 0);&lt;br&gt;end;[/code]&lt;br&gt;Ну вот собственно и всё. Теперь за это изображение можно перетаскивать форму. Кстати, таким же способом можно перемещать по форме любой компонент. Только в этом случае нужно вместо &lt;strong&gt;FMain.perfom()&lt;/strong&gt; нужно написать &lt;strong&gt;Имя_компонента.perfom()&lt;/strong&gt;. Тогда этот компонент будет перемещаться мышкой по форме. Всё просто!</description><category>перемещение формы</category><category>mousedown</category><category>delphi</category></item><item><guid isPermaLink="true">http://viewcode.blog.ru/54025171.html</guid><pubDate>Wed, 11 Mar 2009 07:45:45 GMT</pubDate><title>Как получить расширение файла</title><link>http://viewcode.blog.ru/54025171.html</link><description>В &lt;a href="http://viewcode.blog.ru/54024899.html"&gt;предыдущем посте&lt;/a&gt; я написал функцию для получения имени файла без расширения. В ней мы использовали функцию для &lt;a href="http://viewcode.blog.ru/54024659.html"&gt;получения имени файла с расширением&lt;/a&gt; (думаю, что можно немного проще всё сделать). Теперь давайте посмотрим как можно получить расширение файла (надеюсь, что многие, прочитав предыдущие посты уже сами догадались как получить только расширение). И так, начнём.&lt;br&gt;&lt;br&gt;Опять же описываем функцию:&lt;br&gt;&lt;br&gt;[code lang=delphi]function GetFileFormat(St: string): string;&lt;br&gt;var&lt;br&gt;&amp;nbsp; z: integer;&lt;br&gt;&amp;nbsp; n: byte;&lt;br&gt;begin&lt;br&gt;&amp;nbsp; for z := length(St) -1 downto 0 do&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (St[z] = '.') then&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n := z;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br&gt;&amp;nbsp; Delete(St, 1, n);&lt;br&gt;&amp;nbsp; Result := St;&lt;br&gt;end;[/code]&lt;br&gt;&lt;br&gt;Т.е. здесь всё работает точно так же как и в &lt;a href="http://viewcode.blog.ru/54024659.html"&gt;первой нашей функции&lt;/a&gt;, только ограничения немножко другие.&lt;br&gt;Теперь выводим результат в &lt;strong&gt;Label&lt;/strong&gt;:&lt;br&gt;&lt;br&gt;[code lang=delphi]Label1.Caption:=GetFileFormat(OpenPictureDialog1.FileName);[/code]&lt;br&gt;&lt;br&gt;Ну вот и всё. Тут даже и пояснений никаких не надо, всё предельно ясно! ;)&lt;br&gt;&lt;br&gt;- - - - - - - - - -&lt;br&gt;&lt;br&gt;&lt;strong&gt;Интересно почитать:&lt;br&gt;&lt;br&gt;&lt;/strong&gt;&lt;a href="http://viewcode.blog.ru/54024659.html"&gt;Как получить короткое имя файла&lt;/a&gt;&lt;br&gt;&lt;a href="http://viewcode.blog.ru/54024899.html"&gt;Как получить короткое имя файла без расширения&lt;/a&gt;</description><category>delphi</category></item><item><guid isPermaLink="true">http://viewcode.blog.ru/54024899.html</guid><pubDate>Wed, 11 Mar 2009 07:38:03 GMT</pubDate><title>Как получить короткое имя файла без расширения</title><link>http://viewcode.blog.ru/54024899.html</link><description>&lt;p&gt;В &lt;a href="http://viewcode.blog.ru/54024659.html"&gt;предыдущем посте&lt;/a&gt; мы получили короткое имя файла, но с расширением. А что, если нам необходимо убрать расширение и получить только имя. Для этого напишем простенькую функцию, в которой будем использовать функцию из &lt;a href="http://viewcode.blog.ru/54024659.html"&gt;предыдущего поста&lt;/a&gt;:&lt;br&gt;&lt;br&gt;[code lang=delphi]function FileNameWithoutFormat(str: string): string;&lt;br&gt;var&lt;br&gt;&amp;nbsp; z: Integer;&lt;br&gt;&amp;nbsp; ind: Byte;&lt;br&gt;&amp;nbsp; st: String;&lt;br&gt;begin&lt;br&gt;&amp;nbsp; st := GetShortFileName(Str);&lt;br&gt;&amp;nbsp; for z := length(st) - 1 downto 0 do&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (st[z] = '.') then&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ind := z;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br&gt;&amp;nbsp; Delete(st, ind, length(st));&lt;br&gt;&amp;nbsp; Result := st;&lt;br&gt;end;[/code]&lt;br&gt;&lt;br&gt;Как Вы видите, мы работаем по тому же принципу. Только сначала мы обрезаем путь до имени файла с расширением, а затем уже работаем с полученной строкой, т.е. обрезаем её. Принцип такой: как только мы встречаем знак &amp;quot;.&amp;quot;(точка), то мы прекращаем дальнейший перебор и обрезаем строку.&lt;br&gt;&lt;br&gt;Вывод результата осуществляем по прежнему в &lt;strong&gt;Label&lt;/strong&gt;:&lt;br&gt;&lt;br&gt;[code lang=delphi]Label1.Caption:=FileNameWithoutFormat(OpenPictureDialog1.FileName);[/code]&lt;br&gt;&lt;br&gt;В &lt;a href="http://viewcode.blog.ru/54025171.html"&gt;следующем посте&lt;/a&gt; поговорим о том, как получить расширение файла. Думаю, что многие уже сами смогут написать такую фугкцию. ;)&lt;br&gt;&lt;br&gt;- - - - - - - - - -&lt;br&gt;&lt;br&gt;&lt;strong&gt;Интересно почитать:&lt;br&gt;&lt;br&gt;&lt;/strong&gt;&lt;a href="http://viewcode.blog.ru/54024659.html"&gt;Как получить короткое имя файла&lt;/a&gt;&lt;br&gt;&lt;a href="http://viewcode.blog.ru/54025171.html"&gt;Как получить расширение файла&lt;/a&gt;&lt;/p&gt;</description><category>delphi</category></item><item><guid isPermaLink="true">http://viewcode.blog.ru/54024659.html</guid><pubDate>Wed, 11 Mar 2009 07:30:16 GMT</pubDate><title>Как получить короткое имя файла</title><link>http://viewcode.blog.ru/54024659.html</link><description>Зачастую сталкивался с такой проблемой, поэтому решил написать как быстро и легко решить данную задачу. На самом деле всё достаточно просто, достаточно написать небольшую функцию с одним параметром. Грубо говоря, функция будет просто обрезать полный путь к файлу и оставлять только имя файла.&lt;br&gt;&lt;br&gt;Вот описание самой функции:&lt;br&gt;&lt;br&gt;[code lang=delphi]function GetShortFileName(Str: string): string;&lt;br&gt;var&lt;br&gt;&amp;nbsp; z: integer;&lt;br&gt;&amp;nbsp; n: byte;&lt;br&gt;begin&lt;br&gt;&amp;nbsp; for z := length(Str) -1 downto 0 do&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Str[z] = '\' then&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n := z;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br&gt;&amp;nbsp; Delete(Str, 1, n);&lt;br&gt;&amp;nbsp; Result := Str;&lt;br&gt;end;[/code]&lt;br&gt;&lt;br&gt;Теперь нам необходимо вызвать эту функцию в нужном месте программы и внести в неё нужный параметр. Например, мы получаем короткое имя при открытии какого-нибудь файла (результат выводим в &lt;strong&gt;Label&lt;/strong&gt;):&lt;br&gt;&lt;br&gt;[code lang=delphi]Label1.Caption:=GetShortFileName(OpenDialog1.FileName);[/code]&lt;br&gt;&lt;br&gt;Заметьте, что расширение у файла остаётся!&lt;br&gt;В &lt;a href="http://viewcode.blog.ru/54024899.html"&gt;следующем посте&lt;/a&gt; свяжем данную функцию с ещё одной, полезной и очень похожей на эту! ;)&lt;br&gt;&lt;br&gt;- - - - - - - - - -&lt;br&gt;&lt;br&gt;&lt;strong&gt;Интересно почитать:&lt;br&gt;&lt;br&gt;&lt;/strong&gt;&lt;a href="http://viewcode.blog.ru/54024899.html"&gt;Как получить короткое имя файла без расширения&lt;br&gt;Как получить расширение файла&lt;/a&gt;</description><category>delphi</category></item><item><guid isPermaLink="true">http://viewcode.blog.ru/54020963.html</guid><pubDate>Wed, 11 Mar 2009 07:22:06 GMT</pubDate><title>Как вычислить объём ОЗУ</title><link>http://viewcode.blog.ru/54020963.html</link><description>Как и в &lt;a href="http://viewcode.blog.ru/54016867.html"&gt;предыдущем случае&lt;/a&gt; напишем для этого отедльную функцию (пример будет опять на &lt;strong&gt;Delphi&lt;/strong&gt;):&lt;br&gt;&lt;br&gt;[code lang=delphi]&lt;br&gt;function GetRAM: Cardinal;&lt;br&gt;var&lt;br&gt;&amp;nbsp; MS: TMemoryStatus;&lt;br&gt;begin&lt;br&gt;&amp;nbsp; MS.dwLength := SizeOf(MS);&lt;br&gt;&amp;nbsp; GlobalMemoryStatus(MS);&lt;br&gt;&amp;nbsp; Result := Round(MS.dwTotalPhys&amp;nbsp; / 1048576);&lt;br&gt;end;&lt;br&gt;[/code]&lt;br&gt;&lt;br&gt;Ну и теперь выводим результат функции на экран, а именно в &lt;strong&gt;Label&lt;/strong&gt;:&lt;br&gt;&lt;br&gt;[code lang=delphi]Label1.Caption:=FloatToStr(GetRAM);&lt;br&gt;[/code]&lt;br&gt;&lt;br&gt;На этом всё! ;)</description><category>delphi</category></item><item><guid isPermaLink="true">http://viewcode.blog.ru/54016867.html</guid><pubDate>Wed, 11 Mar 2009 07:15:09 GMT</pubDate><title>Как определить тактовую частоту процессора</title><link>http://viewcode.blog.ru/54016867.html</link><description>&lt;span class="Apple-style-span" style="word-spacing: 0px; font: 13px -webkit-monospace; text-transform: none; color: #000000; text-indent: 0px; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0"&gt;Сегодня я расскажу Вам &lt;strong&gt;как определить тактовую частоту&lt;/strong&gt; Вашего процессора. Пример приведён ниже на &lt;strong&gt;Delphi&lt;/strong&gt;. Но думаю, что в &lt;strong&gt;C++&lt;/strong&gt; его будет несложно переделать (я имею в виду &lt;strong&gt;C++ Builder&lt;/strong&gt;).&lt;br&gt;&lt;br&gt;Для начала описываем отдельно функцию:&amp;nbsp;&lt;br&gt;&lt;br&gt;[code lang=delphi]function GetCPUSpeed: Double;&lt;br&gt;const&lt;br&gt;&amp;nbsp; DelayTime = 500;&lt;br&gt;var&lt;br&gt;&amp;nbsp; TimerHi, TimerLo: DWORD;&lt;br&gt;&amp;nbsp;PriorityClass, Priority: Integer;&lt;br&gt;begin&lt;br&gt;&amp;nbsp; PriorityClass := GetPriorityClass(GetCurrentProcess);&lt;br&gt;&amp;nbsp; Priority := GetThreadPriority(GetCurrentThread);&lt;br&gt;&amp;nbsp; SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);&lt;br&gt;&amp;nbsp; SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);&lt;br&gt;&amp;nbsp; Sleep(10);&lt;br&gt;&amp;nbsp; asm&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dw 310Fh&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov TimerLo, eax&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov TimerHi, edx&lt;br&gt;&amp;nbsp; end;&lt;br&gt;&amp;nbsp; Sleep(DelayTime);&lt;br&gt;&amp;nbsp; asm&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dw 310Fh&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sub eax, TimerLo&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbb edx, TimerHi&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov TimerLo, eax&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov TimerHi, edx&lt;br&gt;&amp;nbsp; end;&lt;br&gt;&amp;nbsp; SetThreadPriority(GetCurrentThread, Priority);&lt;br&gt;&amp;nbsp; SetPriorityClass(GetCurrentProcess, PriorityClass);&lt;br&gt;&amp;nbsp; Result := TimerLo/(1000.0 * DelayTime);&lt;br&gt;end;[/code]&lt;br&gt;&lt;br&gt;&amp;nbsp;Как Вы видите помимо функций &lt;strong&gt;WinAPI&lt;/strong&gt; мы ещё используем и ассемблеровский код. Затем на необходимо вывести значение функции. Будем выводит, например, в &lt;strong&gt;Label&lt;/strong&gt;:&lt;br&gt;&lt;br&gt;[code lang=delphi]Label1.Caption:=FloatToStr(GetCPUSpeed);[/code]&lt;br&gt;&lt;br&gt;Вот и всё. Таким образом Вы получите тактовую чистоту Вашего процессора. Можете использовать какую-нибудь функцию для округления значения, поскольку значение выдаётся не в целом виде, а, например, &lt;em&gt;&lt;u&gt;1717,209404&lt;/u&gt;&lt;/em&gt;. Ну и подберите единицу измерения (это будет &lt;strong&gt;MHz&lt;/strong&gt;).&lt;/span&gt;</description><category>delphi</category></item><item><guid isPermaLink="true">http://viewcode.blog.ru/53999171.html</guid><pubDate>Wed, 11 Mar 2009 02:33:58 GMT</pubDate><title>Начинаем работу</title><link>http://viewcode.blog.ru/53999171.html</link><description>&lt;p&gt;&lt;img src="http://stat8.blog.ru/lr/090ba1d7e473c2facc8227f518aafcee" border="0" title="786705_58474289.jpg" width="333" height="358" alt=""&gt;&amp;nbsp;&lt;br&gt;Всем привет!&lt;/p&gt;&lt;p&gt;Это первый пост данного &lt;a href="http://viewcode.blog.ru"&gt;блога&lt;/a&gt; и по традиции я напишу, что Вы сможете найти на страницах моего блога.&lt;br&gt;&lt;br&gt;Если кто ещё не понял, то скажу, что речь будет идти о программировании. А именно будем рассматривать различные языки программирования, в частности, их функции, приёмы работы с ними, производить какой-то анализ и прочее. Вообщем будет достаточно интересно.&lt;br&gt;&lt;br&gt;Пока что у меня в плане лежит рассмотрение следующих языков: Object Pascal, C++, C#, JavaScript, html, php, asm, lisp, prolog. Со временем перейдём и к другим языкам программирования.&lt;/p&gt;&lt;p&gt;Так что, друзья, подписывайтесь на обновления блога! Будет очень интересно! ;)&lt;/p&gt;&lt;p&gt;До встречи!&lt;/p&gt;</description><category>блог</category></item></channel></rss>
