<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=508550</guid>
        <pubDate>Thu, 11 Nov 2004 15:36:00 +0000</pubDate>
        <title>Русские шрифты</title>
        <link>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=508550</link>
        <description><![CDATA[taya: У меня  tp 7.0. Брожу в  форуме, пока не могу найти ответы.Буду стараться , спасибо.]]></description>
        <author>taya</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=508110</guid>
        <pubDate>Thu, 11 Nov 2004 10:40:54 +0000</pubDate>
        <title>Русские шрифты</title>
        <link>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=508110</link>
        <description><![CDATA[KiRiK: <strong class='tag-b'>Азат</strong>, а где у тебя копируются в res все не русско-буквенные сибволы? ;) (привет <strong class='tag-b'>Vesper&#39;у</strong>)<br>
Кстати, а зачем его филлчарить?<br>
<br>
(V. hehe :))]]></description>
        <author>KiRiK</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=508015</guid>
        <pubDate>Thu, 11 Nov 2004 09:40:43 +0000</pubDate>
        <title>Русские шрифты</title>
        <link>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=508015</link>
        <description><![CDATA[Азат: taya&#33; Этот Исходник ТОЛЬКО для TMT Pascal Multitarget 4 и без переделки больше нигде не пойдет&#33; <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2004-11-11T09:44:28+00:00">11.11.04, 09:44</time></span></span><br>
ну вот я немного подредактировал свою функцию. Там надо было зафилчарить массив res]]></description>
        <author>Азат</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=507952</guid>
        <pubDate>Thu, 11 Nov 2004 08:38:48 +0000</pubDate>
        <title>Русские шрифты</title>
        <link>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=507952</link>
        <description><![CDATA[Vesper: <strong class='tag-b'>Romtek</strong>, SansSerifFont по дефолту отсутствует в ТМТ 3.90 :( там есть только SmallFont, MediumFont, LargeFont :ph34r: <br>
<br>
<strong class='tag-b'>taya</strong>, какой паскаль и какая ф-я?<br>
А вообще недавно в ФАКе появилась тема про русские шрифты ;) <a class='tag-url' href='http://forum.sources.ru/index.php?showforum=87' target='_blank'><strong class='tag-b'>FAQ</strong></a> <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2004-11-11T08:43:56+00:00">11.11.04, 08:43</time></span></span><br>
<strong class='tag-b'>Romtek</strong>, кстати все три нерусские :(]]></description>
        <author>Vesper</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=507910</guid>
        <pubDate>Thu, 11 Nov 2004 08:09:42 +0000</pubDate>
        <title>Русские шрифты</title>
        <link>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=507910</link>
        <description><![CDATA[taya: windows XP Professional  v.2002 service Pack 1 функция не работает.Есть другой способ решения? Например через пользовательские шрифты? Это обсуждалось где-то  на форуме? если  да , то отправьте меня туда ... ;), я не обижусь]]></description>
        <author>taya</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=507391</guid>
        <pubDate>Wed, 10 Nov 2004 15:12:15 +0000</pubDate>
        <title>Русские шрифты</title>
        <link>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=507391</link>
        <description><![CDATA[Romtek: <strong class='tag-b'>Для графического режима в любом компиляторе</strong><br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp; SetTextStyle(TriplexFont, HorizDir, 2);</div><div class="code_line">&nbsp;&nbsp; &nbsp; OutTextXY(GetMaxX div 2, GetMaxY div 2, ANSI_to_OEM(&#39;Русский шрифт показывает!&#39;));</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
<span class="tag-color tag-color-named" data-value="blue" style="color: blue">Нужны кириллические шрифты, которые можно скачать</span> по ссылке <a class='tag-url' href='http://pascal.sources.ru/graph/bgirfont.zip' target='_blank'>http://pascal.sources.ru/graph/bgirfont.zip</a> (~37 кб)<br>
<br>
Поправка: не для всех компиляторов. Также не все шрифты - русские.]]></description>
        <author>Romtek</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=507355</guid>
        <pubDate>Wed, 10 Nov 2004 14:30:19 +0000</pubDate>
        <title>Русские шрифты</title>
        <link>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=507355</link>
        <description><![CDATA[taya: Азат, я скачала  твой редактор и хотела попробовать разобраться, но он не компилируется. Нужен модуль Mouse. Я что-то не поняла правильно ?]]></description>
        <author>taya</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=507217</guid>
        <pubDate>Wed, 10 Nov 2004 12:29:28 +0000</pubDate>
        <title>Русские шрифты</title>
        <link>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=507217</link>
        <description><![CDATA[Vesper: <strong class='tag-b'>Азат</strong>, она должна быть универсальной :) у тебя похоже вин2000, и свободная память заполнена нулями, а вот у меня есть вин98, из-за чего в моём тетрисе пришлось воткнуть пару cleardevice&#39;ов. А еще она СОВЕРШЕННО не обрабатывает остальные символы :D  :ph34r: из-за чего и наехал, только поздновато сообразил.]]></description>
        <author>Vesper</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=507185</guid>
        <pubDate>Wed, 10 Nov 2004 12:03:41 +0000</pubDate>
        <title>Русские шрифты</title>
        <link>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=507185</link>
        <description><![CDATA[Азат: Эта функция у меня прекрасно работает]]></description>
        <author>Азат</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=507159</guid>
        <pubDate>Wed, 10 Nov 2004 11:30:40 +0000</pubDate>
        <title>Русские шрифты</title>
        <link>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=507159</link>
        <description><![CDATA[Vesper: <strong class='tag-b'>KiRiK</strong>, ай-яй-яй, нельзя писать чего-нибудь в ФАК, если оно не работает :ph34r: <br>
кстати к Азату это тоже относится (ф-я ANSI_to_OEM)<br>
]]></description>
        <author>Vesper</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=507093</guid>
        <pubDate>Wed, 10 Nov 2004 10:23:31 +0000</pubDate>
        <title>Русские шрифты</title>
        <link>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=507093</link>
        <description><![CDATA[KiRiK: Перепишем чуток функцию:<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">function ANSI_to_OEM(s:string):string;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;i:Byte;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;result[0] := s[0];</div><div class="code_line">&nbsp;&nbsp;if result[0] &#60;&#62; #0</div><div class="code_line">&nbsp;&nbsp; &nbsp;Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;for i := 1 to byte(s[0]) do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if s[i] in[&#39;А&#39;..&#39;п&#39;]</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;byte(result[i]) := byte(s[i]) - 64</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if s[i] in[&#39;р&#39;..&#39;я&#39;]</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;byte(result[i]) := byte(s[i]) - 16</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if s[i] = &#39;Ё&#39;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;byte(result[i]) := 240</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if s[i] = &#39;ё&#39;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;byte(result[i]) := 241</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result[i] := s[i]</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end</div><div class="code_line">end;</div></ol></div></div></div></div>Думаю, вполне очевидно, зачем нужны else. Еще добавлена проверка на пустую строку. ;)<br>
<br>
To <strong class='tag-b'>Vesper</strong>, уже исправил. :whistle: <br>
Только не проверял правильность перевода символов, верю Азату.<br>
<br>
Или нагляднее:<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">function ANSI_to_OEM(s:string):string;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;i:Byte;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;result[0] := s[0];</div><div class="code_line">&nbsp;&nbsp;if result[0] &#60;&#62; #0</div><div class="code_line">&nbsp;&nbsp; &nbsp;Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;for i := 1 to byte(s[0]) do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;case s[i] of</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;А&#39;..&#39;п&#39;:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;byte(result[i]) := byte(s[i]) - 64;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;р&#39;..&#39;я&#39;:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;byte(result[i]) := byte(s[i]) - 16;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;Ё&#39;:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result[i] := #240;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;ё&#39;:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result[i] := #241;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result[i] := s[i]</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">end;</div></ol></div></div></div></div>]]></description>
        <author>KiRiK</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=507058</guid>
        <pubDate>Wed, 10 Nov 2004 09:51:50 +0000</pubDate>
        <title>Русские шрифты</title>
        <link>https://forum.sources.ru/index.php?showtopic=72150&amp;view=findpost&amp;p=507058</link>
        <description><![CDATA[Азат: Я тут подумал, и решил собрать в единое, то, что было в теме &quot;Сделайте мне русский в паскале&#33;&#33;&#33;&quot; и длбавить кое-что своего...<br>
<br>
<strong class='tag-b'> Часть1. TMT Pascal 3.90. Текстовый режим.</strong><br>
<br>
Дело в том, что при наборе программы используется ANSI(Windows) кодировка русского языка, а DOS использует OEM кодировку, и поэтому при запуске программы<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;WriteLn(&#39;Привет!&#39;);</div><div class="code_line">end.</div></ol></div></div></div></div><br>
<br>
она выведет иероглифы вроде §к&#9577;Ї}Ї&#33;<br>
<br>
Решение проблемы. Пишем функцию, для преобразования ANSI в OEM:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;</div><div class="code_line">function ANSI_to_OEM(s:string):string;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;i:integer;</div><div class="code_line">&nbsp;&nbsp;res:string;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;fillchar(res,sizeof(res),0);</div><div class="code_line">&nbsp;&nbsp;res[0] := s[0];</div><div class="code_line">&nbsp;&nbsp;for i := 1 to byte(s[0]) do</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if s[i] in[&#39;А&#39;..&#39;п&#39;] then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;byte(res[i]) := byte(s[i]) - 64;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if s[i] in[&#39;р&#39;..&#39;я&#39;] then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;byte(res[i]) := byte(s[i]) - 16;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if s[i] = &#39;Ё&#39; then byte(res[i]) := 240;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if s[i] = &#39;ё&#39; then byte(res[i]) := 241;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;result := res;</div><div class="code_line">end;</div></ol></div></div></div></div><br>
<br>
…и исправляем нашу программу<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;WriteLn(ANSI_to_OEM(&#39;Привет&#39;);</div><div class="code_line">end.</div></ol></div></div></div></div><br>
<br>
Все заработало…<br>
<br>
<br>
<strong class='tag-b'>Часть 2. Turbo(Borland) Pascal. Текстовый режим.</strong><br>
<br>
Если вдруг у вас не переключается раскладка клавиатуры, то следует сделать вот то:<br>
1.	Жмем «Пуск» -&gt; Выполнить<br>
2.	Пишем regedit, жмем Enter<br>
3.	Открываем ключ HKLM&#092;SYSTEM&#092;CurrentControlSet&#092;Control&#092;Keyboard Layout&#092;DosKeybCodes<br>
4.	Заменяем значение строковой переменной 00000409 с &quot;us&quot; на &quot;ru&quot;.<br>
5.	Открываем файл C:&#092;Windows&#092;SYSTEM32&#092;autoexec.nt<br>
6.	Пишем в нем строчку lh %SystemRoot%&#092;System32&#092;kb16 ru, 866<br>
7.	При необходимости можем перезагрузить комп.<br>
<br>
<br>
<strong class='tag-b'>Часть 3. Turbo(Borland) Pascal. Графический режим.</strong><br>
<br>
В Windows XP нет шрифтов для графического режима. Поэтому их придется взять из Windows 98.<br>
Для начала необходимо достать файл EGA3.cpi. Он входит в состав Windows 98 поэтому найти его не составит проблем. Затем берем из него 1024 байт начиная с адреса FileSize-1024-48. Где FileSize – размер файла. Для этого напишем следующую программу:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;f:file;</div><div class="code_line">&nbsp;&nbsp;p:pointer;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;assign(f,&#39;ega3.cpi&#39;);</div><div class="code_line">&nbsp;&nbsp;reset(f,1);</div><div class="code_line">&nbsp;&nbsp;Seek(f,FileSize(f)-1024-48);</div><div class="code_line">&nbsp;&nbsp;GetMem(p,1024);</div><div class="code_line">&nbsp;&nbsp;BlockRead(f,p^,1024);</div><div class="code_line">&nbsp;&nbsp;close(f);</div><div class="code_line">&nbsp;&nbsp;assign(f,&#39;font.8x8&#39;);</div><div class="code_line">&nbsp;&nbsp;rewrite(f,1);</div><div class="code_line">&nbsp;&nbsp;BlockWrite(f,p^,1024);</div><div class="code_line">&nbsp;&nbsp;close(f);</div><div class="code_line">&nbsp;&nbsp;FreeMem(p,1024);</div><div class="code_line">end.</div></ol></div></div></div></div><br>
<br>
В результате у нас на диске появился файл font.8x8. Этим файлом надо перекрыть вектор прерывания 1F. Чтобы это сделать, запускаем программу BinOBJ.exe со следующими параметрами<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;</div><div class="code_line">Binobj font.8x8 font font</div></ol></div></div></div></div><br>
<br>
Теперь у вас на диске появился файл font.obj - это русский шрифт. Для его использования вот небольшой примерчик:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;</div><div class="code_line">uses graph,dos;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure font; external;</div><div class="code_line">{$L font.obj}</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;gd,gm:integer;</div><div class="code_line">&nbsp;&nbsp;x,y,i:integer;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;gd := VGA;</div><div class="code_line">&nbsp;&nbsp;gm := VGAHi;</div><div class="code_line">&nbsp;&nbsp;SetIntVec(F,@font);</div><div class="code_line">&nbsp;&nbsp;InitGraph(gd,gm,&#39;E:\BP\BGI&#39;);</div><div class="code_line">&nbsp;&nbsp;x := 0;</div><div class="code_line">&nbsp;&nbsp;y := 0;</div><div class="code_line">&nbsp;&nbsp;for i := 1 to 255 do</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;OutTExtXY(x,y,chr(i));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;inc(x,8);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if x &#62;= GetMaxX-8 then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;x := 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;inc(y,8);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;ReadLn;</div><div class="code_line">&nbsp;&nbsp;CloseGraph;</div><div class="code_line">end.</div></ol></div></div></div></div><br>
<br>
Заметим, что процедуру SetIntVec надо писать ДО процедуры InitGraph<br>
<br>
<strong class='tag-b'>Часть 4. TMT Pascal. Графический режим.</strong><br>
<br>
Ну вот мы и подошли к самому сложному. Да… Для этого я не нашел ни каких изощрений и поэтому решил делать все «в лоб».<br>
Делаем следующее. Пишем редактор шрифтов, который сохраняет их в виде битов. Для работы с битами надо написать две процедуры:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;</div><div class="code_line">function ReadBit(a,n:byte):boolean;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;c:byte;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;c := a shl (n-1); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //оставляем бит с номером N</div><div class="code_line">&nbsp;&nbsp;ReadBit := boolean(c shr 7); &nbsp;//Передвигоем этот бит в начало и смотрим 0 он или 1</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure WriteBit(var a:byte; n:byte; b:boolean);</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;c:byte;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;if b then &nbsp; &nbsp; &nbsp; //Если надо записать 1, то</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;c := 1 shl (8-n); &nbsp;//Записываем 1 в бит под номером n</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;a := a or c; &nbsp; &nbsp; &nbsp; //Добавляем его к числу</div><div class="code_line">&nbsp;&nbsp; &nbsp;end</div><div class="code_line">&nbsp;&nbsp;else &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Если надо записать 0, то</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;c := 255-(1 shl (8-n)); &nbsp;//Записываем 1 во все биты, кроме n</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;a := a and c; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//Добавляем все к числу.</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">end;</div></ol></div></div></div></div><br>
<br>
Для начала выводим стандартный шрифт на экран, сканируем его, записываем в файл (в виде битов) открываем файл в редакторе, добавляем русские буквы, затем пишем модуль, для работы с вашими же шрифтами. ВСЕ&#33;&#33;&#33;<br>
<br>
Вот я выложил редактор, но он для ТМТ мультитаргет 4. В принципе его легко переделать под 3.90]]></description>
        <author>Азат</author>
        <category>Pascal</category>
      </item>
	
      </channel>
      </rss>
	