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

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

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

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

Сообщение artyomka » 04.06.2009 07:53:22

Суть программы состоит в том что пользователь должен ввести текст, указать его характеристики и записать всё это файл.
Код: Выделить всё
(========================================================================================================================================================)
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;
(===================================================================================================================================)

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

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

Сообщение Иван Шихалев » 04.06.2009 09:21:56

А какая ошибка — телепаты должны догадаться?
И не забываем про тег code.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

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

Сообщение artyomka » 04.06.2009 09:56:54

Извините ошибку нашёл но появилась ещё проблема. При любом выборе шрифта на экран выводится только матричный, хотя в Turbo Pascal всё нормально.
artyomka
незнакомец
 
Сообщения: 4
Зарегистрирован: 04.06.2009 07:41:31
Откуда: Нижегородская обл., Вадский р-н., пос. Новый Мир

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

Сообщение Vadim » 04.06.2009 10:09:26

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

А путь к шрифтам кто будет указывать? :) Компилятор и подставляет тот который у него под рукой.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

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

Сообщение artyomka » 04.06.2009 11:49:11

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

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

Сообщение Vadim » 04.06.2009 12:45:25

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

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

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

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

Сообщение artyomka » 04.06.2009 19:31:57

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

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

Сообщение Vadim » 05.06.2009 04:48:54

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

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

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


Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

Рейтинг@Mail.ru