изучаю графику в Паскале

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Ответить
artyomka
незнакомец
Сообщения: 4
Зарегистрирован: 04.06.2009 07:41:31
Откуда: Нижегородская обл., Вадский р-н., пос. Новый Мир

изучаю графику в Паскале

Сообщение artyomka »

Суть программы состоит в том что пользователь должен ввести текст, указать его характеристики и записать всё это файл.

Код: Выделить всё

(========================================================================================================================================================)
Program TEXT;
uses crt,graph;
const col:array[0..15] of string[12] = ('black','blue','green','cyan','red','magenta','brown','lightgray','darkgray','lightblue','lightgreen','lightcyan','lightred','lightmagenta','yellow','white');
Type
   typeText=record
    text:string;
    color: string;
    size:word;
    font:integer;
   end;
var
   driver,mode,error, k, hh:integer;
   a:typeText;
   f:file of typeText;
   ndir,fn,str:string;
   i:integer;


begin
clrscr;
ndir:='typetext';
fn:='text';
 {$I-}
 chdir(ndir);
 {$I+};
 If IoResult <>0  then
  begin
  mkdir(ndir);
  chdir(ndir);
  end;

 assign(f,fn);
  {$I-}
  reset(f);
  {$I+};
 if IoResult <>0 then
 rewrite(f);

writeln('Введите текст');
readln(a.text);
writeln('Какого цвета должен быть ваш текст?');
writeln('Выберите один из шестнадцати');
writeln(' black, blue, green, cyan, red, magenta, brown');
writeln(' lightgray, darkgray, lightblue, lightgreen, lightcyan');
writeln(' lightred, lightmagenta, yellow, white');
read(str);
for i:=0 to 15 do
 if str=col[i] then a.color:=col[i];

writeln('Укажите размер шрифта');
read(a.size);
writeln('Укажите вид шрифта, выберите число от 0 до 10');
read(a.font);
write(f,a);

driver:=detect;
InitGraph(driver,mode,'');
error:=GraphResult;
if error <>0 then writeln(GraphErrorMsg(error))
 else
begin
 SetColor(a.color);
 SetTextStyle(a.font,0,a.size);
 OutText(a.text);



readkey;
closegraph;
end;
(===================================================================================================================================)

Но только здесь ошибка, хотя я видел подобный алгоритм в книге Фаронова
Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

Сообщение Иван Шихалев »

А какая ошибка — телепаты должны догадаться?
И не забываем про тег code.
artyomka
незнакомец
Сообщения: 4
Зарегистрирован: 04.06.2009 07:41:31
Откуда: Нижегородская обл., Вадский р-н., пос. Новый Мир

Сообщение artyomka »

Извините ошибку нашёл но появилась ещё проблема. При любом выборе шрифта на экран выводится только матричный, хотя в Turbo Pascal всё нормально.
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

artyomka писал(а):InitGraph(driver,mode,'');

А путь к шрифтам кто будет указывать? :) Компилятор и подставляет тот который у него под рукой.
artyomka
незнакомец
Сообщения: 4
Зарегистрирован: 04.06.2009 07:41:31
Откуда: Нижегородская обл., Вадский р-н., пос. Новый Мир

Сообщение artyomka »

В Turbo Pascal я знаю как это делать, но вот во Free Pascal даже и представление не имею(тоже касается и выбора адаптера).
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

artyomka писал(а):но вот во Free Pascal даже и представление не имею

Это зависит от того, в какой каталог Вы эти шрифты положите. В комплекте с FP никакие шрифты не идут.
artyomka писал(а):тоже касается и выбора адаптера

Адаптер тоже не Ваша проблема. :) Вам только надо правильно указать разрешение и цветовой режим, например:

Код: Выделить всё

mode:=D4bit;  //4-ёх битный цвет, т.е. 16 цветов на экране
driver:=m800x600;  //Разрешение графического окна 800 х 600
InitGraph(driver,mode,'d:\progs\fpc\bgi');  //'d:\progs\fpc\bgi' - здесь у меня лежат русифицированные графические шрифты
artyomka
незнакомец
Сообщения: 4
Зарегистрирован: 04.06.2009 07:41:31
Откуда: Нижегородская обл., Вадский р-н., пос. Новый Мир

Сообщение artyomka »

Тогда у меня к вам два вопроса. Во-первых где можно скачать шрифты, а во-вторых у меня почему-то папочки bgi нет или её надо самому делать?
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

artyomka писал(а):у меня почему-то папочки bgi нет или её надо самому делать?

См. предыдущий ответ:
Vadim писал(а):В комплекте с FP никакие шрифты не идут.

:)
Папочку, естественно, Вы создаёте сами. Да и название её можете дать любое, какое Вам нравится, главное чтобы в Вашей программе было то же самое название, чтобы программа знала куда лезть за шрифтами.
По сведениям источников близких к информированным, русские шрифты есть в специальном комплекте School Pack. Скачать можно здесь:
http://dim-hj.gorodok.net/
Ответить