68914

Вывод текста

Лекция

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

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

Русский

2014-09-27

54 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 , y  находится  числовая информация , для вывода ее на экран необходимо преобразовать их в строковые переменные соответственно 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;       {ориентация по y}

                                        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 и y}

OutTextXY(200,100,`x`);  {x–центр,y–верхний край строки}

OutTextXy(215,100,`2`);


 

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

23833. Використання каскадних листів стилів 29.5 KB
  Виконання завдань: Створити три гіпертекстових сторінки з наступними характеристиками: Для першої сторінки: визначити стиль для документу фон блакитний; визначити стиль для заголовку шрифт Arial колір червоний вирівнювання за центром сторінки; визначити стиль для абзацу шрифт Sans Serif курсив. Для другої сторінки: визначити стиль для заголовку шрифт Times New Roman розмір 14 пунктів колір зелений; визначити стиль для абзацу шрифт Courier напівжирний. Для третьої сторінки розбитої на два розділи: застосувати стиль 1ої...
23834. Створення та налагодження форм 34.5 KB
  html fieldset style= padding: 2 legend Характеристики legend p Назва країни: span lang= uk nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; span input type= text name= T1 size= 20 p p span lang= uk Місце розташування: span span lang= uk nbsp;nbsp;nbsp; span input type= text name= T1 size= 20 p p span lang= uk Столиця span : span lang= uk nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; span nbsp; input...
23835. Форматування символів 38 KB
  Вихідний код сторінки: html head title Країни АСЕАН title head body BGCOLOR=Black TEXT=White BASEFONT SIZE=3 H1 ALIGN=CENTER FONT COLOR= RED Малайзія FONT H1 H3 ALIGN=LEFT FONT FACE= Comic Sans MS COLOR = YELLOW Столиця FONT H3 P SAMP U Столиця КуалаЛумпур. U SAMP P H3 ALIGN=LEFT FONT FACE= Comic Sans MS COLOR = YELLOW Географічне розташування FONT H3 P EM Малайзія розташована в екваторіальному поясі. EM P H3 ALIGN=LEFT FONT FACE= Comic Sans MS COLOR = YELLOW Державний устрій FONT H3 P B Малайзія це федерація яка складається з 13 штатів...
23836. Створення посилань на мережеві ресурси 33.5 KB
  Вихідний код сторінки: html head title Дарфурський конфлікт title head body BGCOLOR=Azure TEXT=Black BASEFONT SIZE=3 A NAME= Top A H1 ALIGN=CENTER FONT COLOR= RED Конфлікт у Дарфурі FONT H1 H3 ALIGN=LEFT FONT FACE= Monotype Corsiva COLOR = Black A HREF= mailto:ork@email.ua Автор: Киричук Олег A FONT H3 H3 ALIGN=LEFT FONT FACE= Arial COLOR = Green OL TYPE=1 LI Опис регіону FONT H3 P EM Дарфур араб. EM P H3 ALIGN=LEFT FONT FACE= Arial COLOR = Green OL START=2 LI Опис конфлікту FONT H3 P Дарфурський конфлікт міжетнічний конфлікт що вилився...
23837. Використання графіки при створенні HTML 38.5 KB
  Вихідний код сторінки: html head title Індокитай title head body bgcolor= 99FF33 p align= center b i font size= 7 color= FF0000 Індокитай font i b p p align= left b i img border= 0 src= Flag_of_Vietnam.png width= 184 height= 125 align= left Соціалістична Республіка В'єтнам i b країна в південносхідній Азії на узбережжі ПівденноКитайського моря межує на півночі з Китаєм на півдні та заході з Камбоджею і Лаосом; омивається Південнокитайським морем затока Тонкін. 2006 p p align= center nbsp; p p align= center img border= 0 src=...
23838. Сатирическая Литература 17в.Антицерковная литра 26.5 KB
  только они и люди Типы сатиры: 1Антицерковная литература 2сатира на царский суд Сатира на самые главные вещина все мироздание. библией можно оправдать любые поступки сатира не сколько на библиюсколько на демагогичное использование текста сверхсложные системы на вопросы в них нельзя отвечать однозначноязыквселенная человек Калязинская челобитная меховую жалобу иноков Троицкого Калязина монастыря на левом берегу Волги против города Калязина адресованную архиепископу Тверскому и Кашинскому Симеону 16761681....
23839. Сатира на Царский суд 28 KB
  Сатира на Царский суд Повесть об Ерше Ершовиче рассказывает о тяжбе Ерша с Лещом и Головлем. Лещ и Головль Ростовского озера жильцы жалуются в суд на Ерша на Ершова сына на щетинника на ябедника на вора на разбойника на ябедника на обманщика. Дальше в форме пародии на судное дело повествуется о проделках и непотребствах Ерша векового обманщика и ведомого воришки. В конце концов судьи признают что правы Лещ с товарищи и выдают им Ерша головою.
23840. Смеховой мир Древней Руси (далее - ДР) 22.5 KB
  В ДР смехом разрушалась родовая точка зрения.С точки зрения жителей ДР все что за пределами родовой точки зрения не существует это антимир находящийся на кромке кромешный мир.Азбука о голом и небогатом человеке монолог чтоб вы знали: на каждую букву малюсенький сюжет на пару строк он рассказывает что у него были родители потом умерли стал бедным итдВообще такого рода азбуки были популярны тк если вдуматься азбука модель культуры и мировоззрения народа и мироздания вообще.
23841. Смеховой мир Древней Руси 22.5 KB
  Смехочень сложное понятиене изученное до концастихиякоторая может созидать и разрушать.Признак хороших отношенийсмех.Любая иерархия относится к смеху отрицательнов церкви смеяться нельзя.Функции Смехового мира:крушение родовой точки зрения Сатирический смехнаправленный на когото.