68891

Виведення тексту

Лекция

Информатика, кибернетика и программирование

Виведення тексту на екран в графічному режимі має ряд відмінностей від подібних дій в текстовому режимі. Відмінність полягає в тому, що всі дії проводяться тільки із строковими константами і змінними, числова ж інформація повинна заздалегідь перетворюватися в строкову (процедура Str).

Украинкский

2014-09-26

46.5 KB

0 чел.

Лекція 2

Виведення тексту

Виведення тексту на екран  в графічному режимі має ряд відмінностей  від подібних дій  в текстовому режимі. Відмінність полягає в тому, що всі дії проводяться тільки із строковими константами і змінними, числова ж інформація повинна заздалегідь перетворюватися в строкову (процедура Str). Інша відмінність  полягає в тому, що можна використовувати різні шрифти, оскільки при оформленні тексту може виникнути проблема написання його різними шрифтами.

Вибір шрифту і стилю.

У модулі є стандартні шрифти, які знаходяться у файлах з розширенням .CHR у каталозі BGI. Це набір штрихових шрифтів, які можуть використовуватися для виведення інформації. Крім того, доступний матричний шрифт  8х8 для графічних режимів.

Для позначення  цих шрифтів введені константи:

Const 

Defaultfont=0;                 { матричний шрифт 8*8-встановлюється за умовчанням для текстового і графічного режимів}

         { штрихові шрифти встановлюються векторним способом}

Triplexfont=1;                { напівжирний шрифт}

Smallfont=2;                   { світлий шрифт (тонке зображення})

Sansseriffont=3;           { книжкова гарнітура}

Gethicfont=4;                 { готичний шрифт}

Активізація будь-якого з названих шрифтів здійснюється процедурою

SetTextStyle(Font, Direction,CharSize:Word)

Тут параметр Font-номер шрифту

Direction- розташування тексту(за умовчанням горизонтальне).

Можливі дві орієнтації тексту:

Const

, рівне

     Horizdir=0;    { горизонтальна орієнтація, зліва направо}

     Vertdir=1;      { вертикальна орієнтація, від низу до верху}

При значенні Direction,  рівному Vertdir, всі символи будуть повернені проти годинникової стрілки на 90 градусів і виводяться від низу до верху.

Розмір символу встановлюється параметром Charsize, діапазон зміни якого складає   від 1 до 10.

Реєстрація  нових штрихових шрифтів.

Модуль Graph надає можливість використовувати нові шрифти, що не мають ідентифікаторів в системі, - головне, щоб файл шрифтів був у форматі фірми Borland. Користуючись функцією:

InstallUserFont (FontFileName  :  String ) : Integer

можна встановити відповідність між ім'ям штрихового файлу (Fontfilename)  і його реєстраційним номером в системі. Після цього можна вибрати цей шрифт процедурою Settextstyle, вказавши першим параметром номер нового шрифту.

Безпосереднє виведення рядків.

Для виведення тексту існують процедури:

 -outtext(Text:string)

виводить рядок Text, починаючи з поточної позиції курсора

 -outtextxy(x,y:integer; Text:string)

виводить рядок,  орієнтований щодо координат  ( Х,y).

Наприклад

     Outtext(`Borland Pascal`);

Наприклад

Const

            C:string=` графік функції y=sinx`;

. . .   

 OutTextXY(200,300,C);

. . .

Шрифт заздалегідь може бути  встановлений процедурою Settextstyle.

Наприклад

  Outtextstyle(100,100,`горизонтальний рядок`);

Settextstyle(3,0,1);          { горизонтальний рядок}

Outtextxy(100,200,`книжкова гарнітура`);

Settextstyle(4,1,5);       { вертикальний рядок}

Outtextxy(100,300,`готичний шрифт`);

Вся числова інформація повинна заздалегідь перетворюватися в строкову (процедура Str).

Наприклад, в змінних  x, у  знаходиться  числова інформація, для виведення її на екран необхідно перетворити їх в строкові змінні відповідно Sx  і  Sy.

  Var

         SX,SY:String;

        x,y:real;

        gd,gm:integer;

    Begin

gd:=0;

InitGraph(gd.gm,'G:\');

     x:=24.7;    y:=5.8;

   Str(x,SX);

   Str(y,SY);

   OutText(100,100,`x=`+SX);

   OutText(200,200,`y=`+SY);

Readln;

CloseGraph;

End.

Розмір букв і масштабування штрихових шрифтів.

Визначення розміру букв і рядків

У деяких завданнях виникає необхідність визначити ширину і висоту рядків, що виводяться, або букв в пікселях, для цієї мети існують функції:

TextHeight(TextString:String):Word

          TextWidth(TextString:String):Word

Ці функції повертають висоту і ширину рядка Textstring в пікселях.

Наприклад

Const

        My.Str=`Grafika`;

Var

    X,y,xx,yy:Word;

     …

     

    y:=TextHeight(my_Str);

    x:=TextWidth(my_Str);

    xx:=TextHeight(`D`);

     yy:=TextWidth(`D`);

Масштабування штрихових шрифтів.

Розмір букв (висота і ширина) штрихових шрифтів може задаватися процедурою

SetUserCharSize(x,dx,y,dy:Word).

Вона міняє розмір шрифту, встановлений в Settextstyle.

Відношення x/dx задає масштабування ширини викреслюваного шрифту, а відношення y/dy виражає масштаб зміни висоти шрифту.

Наприклад, завдання параметрів x=3 і dx=1, говорить про те, що букви штрихового шрифту, що виводиться, будуть в 3 рази ширше за норму.

Settextstyle(Sansserif, Horizdir,4);{4-нормальний розмір}

Outtext(`Нормальний розмір`);

Setusersize(3,1,1,1);

Outtextxy(50,100,`текст збільшений по ширині`);

Setusersize(1,1,1,2);

Outtextxy(50,200,`текст зменшений по висоті`);

Опит стилю або орієнтації шрифтів.

Повну інформацію про поточний режим тексту, що виводиться, можна отримати, використовуючи  процедуру

          GetTextSettings(Var Settings:TextSettingsType).

У параметрі Settings вона повертає вичерпну інформацію про все, що відноситься до виведення рядків.

Тип цього параметра зумовлений в модулі Graph :

  Type 

         Textsettingstype=record

         Font;                  {номер шрифту}

         Direction;          {напрям}

         Charsize;          {розмір шрифту}

          Horiz;               { орієнтація по х}

         Vert:word;       { орієнтація по у}

                                        End;

Вирівнювання тексту

У ряді завдань необхідно в тексті виводити символи вище або нижче щодо один одного (наприклад, показати ступінь числа або індекс), тобто необхідно провести орієнтування рядка щодо поточної позиції курсора.

Орієнтування строки щодо поточної позиції курсора.

задається процедурою:

  SetTextJustify(Horizontal,Vertical:Word).

Параметри цієї процедури можуть приймати  одне з трьох  оголошених в модулі Graph значень:

Const

{ Для  горизонтального орієнтування (Horizontal ) }

LeftText=0;     { координата X задає лівий край рядка}

Centertext=1;   { координата X задає середину рядка}

Righttext=2;    { координата X задає правий край рядка}

              { Для  вертикального орієнтування (Vertical )}

Bottomtext=0;   { координата Y задає нижній край рядка}

Centertext=1;     { координата Y задає середину рядка}

Toptext=2;        { координата Y задає верхній край рядка}

Наприклад, вивести на екран  xn     і  x2.

               X n

SetTextStyle(0,0,2); { горизонтально-матричне збільшення в 2  рази}                       Settextjustify(1,1);    { орієнтація по центру рядка}

Outtextxy(100,100,`x`);

Settextjustify(1,0);        {x-центр,y-нижній край}

Outtextxy(115,100,`r`);

X2

SetTextStyle(0,0,2);{ горизонтально-матричне збільшення в 2  рази}

Settextjustify(1,1);         { центрування по x і у}

Outtextxy(200,100,`x`);  {x-центр,y-верхній край рядка}

Outtextxy(215,100,`2`);


 

А также другие работы, которые могут Вас заинтересовать

1095. Математические модели и синтез цифровых нерекурсивных фильтров 200.5 KB
  Общие характеристики цифровых фильтров. Математические модели цифровых нерекурсивных фильтров. Методика синтеза цифровых нерекурсивных фильтров. Алгоритм Ремеза для построения оптимального цифрового нерекурсивного фильтра.
1096. Математические модели и синтез цифровых рекурсивных фильтров 1.61 MB
  Математические модели цифровых рекурсивных фильтров. Методика синтеза цифровых рекурсивных фильтров. Численное исследование методики синтеза цифровых рекурсивных фильтров.
1097. Преобразование Фурье 225 KB
  Аналоговое преобразование Фурье. Дискретное преобразование Фурье. Алгоритм быстрого преобразования Фурье с прореживанием по времени. Алгоритм быстрого преобразования Фурье с прореживанием по частоте. Метод двоичной инверсии.
1098. Створення видавництва СІЯЧ як важливий етап видавничої справи міста Черкаси 1.12 MB
  Створення видавництва СІЯЧ як важливий етап видавничої справи міста Черкаси. Законодавче підґрунтя. Створення самостійного видавництва м. Черкаси. Особливості видавничої продукції видавництва СІЯЧ. Архітектонічна структура видавничої продукції.
1099. Дизайн комп’ютерної графіки та реклами 592 KB
  Основними завданням випускної роботи освітньо-кваліфікаційного рівня Спеціаліст. Вимоги до оформлення та представлення на захист випускної роботи. Стандартне вирішення оформлення першого планшету. Проектні об’єкти комплексної розробки рекламних виробів.
1100. Операционная система DOS 35 KB
  Установка операционной системы DOS, изучение основных команд и программ обслуживание.
1101. Операционная система Windows 98 Second Edition (9X) 40 KB
  На этой лабораторной работе Вы установите операционную систему Windows 98 Second Edition, научитесь основным программам обслуживания, работе с реестром и методам восстановления реестра. Воспользуйтесь ранее установленной виртуальной машиной с операционной системой DOS. Укажите в настройках виртуальной машины CD - ISO образ и выберите местонахождение образа.
1102. Операционные системы Windows 2003 Server и Windows XP Professional 223.5 KB
  Вы научитесь устанавливать операционную систему Windows XP Professional, создавать и работать с консолями, настраивать и пользоваться удаленным подключением к рабочему столу. Вы также настроите компьютер для работы под управлением Windows Server 2003.
1103. Операционные системы UNIX на примере реализации Kubuntu 52 KB
  Запуск операционной системы Kubuntu Desktop 6 (Portable). Навигация в linux. Создание и модификация пользователей и групп. Установка и удаление программ на примере пакета webmin. Просмотр системной информации. Манипулирование владельцами файлов и директорий.