Помощь - Поиск - Пользователи - Календарь
Полная версия: Про Graph
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
biba
Такой вопрос. Есть программа и по этой программе строится диаграмма. Причем текст в программе (меню и все такое написано русскими буквами). А когда запускается процедура формирования диаграммы из данных текстового файла, то буквы в диаграмме не русские, а какие-то значки, и при выходе из диаграммы все буквы в меню меняются на такие же значки sad.gif . Почему так происходит и что можно сделать, чтобы такого не было? blink.gif[/color][color=blue]
З.Ы. И еще -> я работаю в Паскале,когда окошко маленькое, а когда это процедура запускается, оно становится на весь экран, почему?
Булат Шакиров
1. Как выводится текст? Через OutText? В этом случае русские буквы возможны для шрифта Default (или нужно скачать русские chr-шрифты). Если у Вас WinXP, то эта тема здесь звучала.
2. Потому что происходит переход из текстового режима в графический.
biba
Цитата(Булат Шакиров @ 31.08.04 10:23)
или нужно скачать русские chr-шрифты). Если у Вас WinXP, то эта тема здесь звучала.

А где их можно скачать?

У меня XP, но программа в целом работает и русские буквы тоже, только в графике не работают, и после графики в самой программе sad.gif
BlackShadow
Цитата
Если у Вас WinXP, то эта тема здесь звучала

Ага. Выложи, пожалуйста линьк хоть на одно такое обсуждение. Помтоянно кто-то спрашивает про схожую проблему, но в текстовом режиме. Если вспомнить структуру .Chr, то легко понять, что отображение текста в графике не зависит от системы.

Программа разворачивается на весь экран, т. к. включается графический режим. Это нормальная реакция виндов. Проблема только в том, что в полноэкранном режиме и в оконном используются разные наоры символов. Т. е. если программу вернуть в состояние "окошка" (Alt+Enter) после работы с графикой, то русский текст вернётся.

А скачать русские шрифты можно на сырцах...
Ozzя
Цитата(BlackShadow @ 31.08.04 11:45)
Если вспомнить структуру .Chr, то легко понять, что отображение текста в графике не зависит от системы.

Не для шрифта default
biba
Цитата(BlackShadow @ 31.08.04 11:45)
А скачать русские шрифты можно на сырцах...

А что именно надо скачивать, там столько всего много. <_< Я имею ввиду программа с этими шрифтами как-то называется или как unsure.gif blink.gif
biba
Цитата(BlackShadow @ 31.08.04 11:45)
Проблема только в том, что в полноэкранном режиме и в оконном используются разные наоры символов. Т. е. если программу вернуть в состояние "окошка" (Alt+Enter) после работы с графикой, то русский текст вернётся.


А если постоянно работать с большим окном, то у меня постоянно вместо букв иероглифы sad.gif Что же мне теперь делать?
У меня же работу проверять наверняка будут в таком режиме, потому что наша преподши слепая :D
Я в шоке! Что же мне теперь все на английский переводить? :P angry.gif
BlackShadow
Вот собственно и фонты...

А с полноэкранным режимом... Подарите преподше очки.
biba
BlackShadow, спасибо за совет, если бы этот мой подарок отразился на моей оценке… rolleyes.gif :P

Ну я скачала эти шрифты, а что дальше? blink.gif В графике как были иероглифы так и остались. И с окном большим вообще ничего сделать нельзя, чтобы буквы нормальные были? sad.gif [list]
BlackShadow
можно попробывать запустить cmd, там keyrus, затем паскаль... Это всё уже кучу раз обсуждалось - посмотри по поиску.

После того, как ты скачала фонты нужно их подгрузить. Как это делается: честно не помню - я работал со своими функциями для этого. В Graph'е есть что-то такое. Подгружаешь, устанавливаешь и вперёд smile.gif. только вот файл этот .chr'ный с собой тягать придётся...
Ozzя
Код
 uses Graph;

 var
  Driver, Mode: Integer;
  TestFont: Integer;
 begin
  TestFont := InstallUserFont('TEST');   { Install the font }
  if GraphResult <> grOk then
  begin
    Writeln('Error installing TestFont (using DefaultFont)');
    Readln;
  end;
  Driver := Detect;   { Put in graphics mode }
  InitGraph(Driver, Mode, ' ');
  if GraphResult <> grOk then
    Halt(1);
  SetTextStyle(TestFont, HorizDir, 2);   { Use new font }
  OutText('Installable fonts supported...');
  Readln;
  CloseGraph;
 end.
BlackShadow
Хорошо, когда Pascal под рукой есть smile.gif
Ozzя
Цитата(BlackShadow @ 31.08.04 15:16)
Хорошо, когда Pascal под рукой есть smile.gif

УГУ :D
2 biba
Вместо test надо будет подставить название Вашего шрифта
biba
А вот эту Озину программку можно прямо в программу диаграммы впихнуть?
А как я узнаю какой у меня шрифт unsure.gif самый простой, который сразу белыми буквами на черном фоне smile.gif
Что такое cmd я тож не знаю :o sad.gif
BlackShadow
Теперь всё по-очереди:
1). Нельзя. Надо найти то место, в котором инициализируется графика (InitGraph) и вставить туда строки
Код

...
InitGraph(...);

TestFont := InstallUserFont('TEST');
SetTextStyle(TestFont, HorizDir, 2);
...


2). Имя шрифта совпадает с именем файла. Т. е. в файле goth.chr хранится фонт goth. А белым по чёрному - это не шрифт, а цвет.

3). cmd - это command.com, только в вёндах по-новее smile.gif
biba
Я вот добавила эту программку и иероглифы стали готические lol.gif
Ничего у меня не получается sad.gif
Я еще прочитала, как переключится на русский на ХР и прочитала про русификатор. А что это? Можно его где скачать? blink.gif
И я еще одного не могу понять. У меня же работают русские буквы, только не на весь экран когда не работают. Бред <_<
Ozzя
1. Про русские шрифты chr - где скачать, как установить, как подключить к exe-файлу:
http://pascal.sources.ru/cgi-bin/forum/YaB...;num=1038203438

2. Как добиться русских шрифтов в BGI-графике?

Цитата
а) шрифт 0 (DefaultFont) Для того, чтобы этот шрифт был русским,
  вектор прерывания 1F должен быть установлен корректно.
  Добудьте откуда-нибудь русский шрифт 8x8 (например, выдерите
из EGA.CPI от русской DOS или из какого-нибудь руссификатора),
возьмите от него вторую половину (1024 байта)
и прилинкуйте к своей программе (см вопрос 5).
После это сделайте SetIntVec($1F,@RussianFont);
Не забудьте обеспечить корректное восстановление этого вектора
при завешении программы.
На уровне команд DOS того же эффекта можно добиться загрузив
резидентную программу GRAFTABL, входившую в комплект DOS версий
до 6.
Запускать ее надо командой GRAFTABL 866, а сама программа
должна быть взята из русской DOS.
б) векторные (CHR) шрифты
Возьмите файлы шрифтов из комплекта русского Paradox или
Quattro Pro. В отличие от BGI драйверов они совместимы.


http://pascal.sources.ru/graph/rusfont.zip
Еще про русские шрифты
http://pascal.sources.ru/graph/rusfont.htm
Altair
Цитата
Я вот добавила эту программку и иероглифы стали готические

Большинство граф. шрифтов не поддерживают кирилицу!
GoodWind
Девушка, может вам лучше транслитом сделать ? ;)
Altair
Цитата
Девушка, может вам лучше транслитом сделать

Транслитом не может быть лучше!
Здесь выбор такой:
если необходим конкретный шрифт, то язык следует делать аглийским,
если неважно какой шрифт, то использовать простой матричный шрифт (он кирилизован)
Бродяжник
Цитата
простой матричный шрифт (он кирилизован)

ИМХО, не кирилизован. Отображение default шрифта борланд паскалем зависит от степени корявости драйвера руссификации экрана; одна и та же прога под разными руссификаторами может работать по-разному. Классический пример - тренажер клавиатуры, кажется, TRK назывался.
2 Biba:
Пример качайте здесь, шрифты возьмите из архива bgirfont.zip, упомянутого выше.
Бродяжник
(текст примера заимствован у Оззи)
Altair
Цитата
ИМХО, не кирилизован

Кирилизирован.
Цитата
Отображение default шрифта борланд паскалем зависит от степени корявости драйвера руссификации экрана; одна и та же прога под разными руссификаторами может работать по-разному.

о разному работат только в 2000 и XP, ибо там есмь криво с ms-dos приложниями smile.gif .

Цитата
под разными руссификаторами

Исользуйте кирилик (cyrillic.com) и все окей!
Бродяжник
Ладно, кирилизирован, так кирилизирован. smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.