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`);


 

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

35862. Экзаменационные задачи по физике 333.5 KB
  Определите работу совершаемую электрическим током в электродвигателе настольного вентилятора за промежуток времени 30 с если при напряжении 220 В сила тока потребляемого двигателем 100 мА. Определите количество теплоты которое выделилось на резисторе сопротивлением 20 Ом за промежуток времени 5 мин если через его поперечное сечение ежесекундно проходит заряд 10 Кл. Определите силу тока потребляемого электродвигателем лифта и расход электроэнергии при одном подъеме если напряжение на зажимах 380 В а его КПД равен 90 . Определите...
35863. ТЕХНОЛОГІЯ ВЛАШТУВАННЯ МАСТИКОВИХ ПОКРІВЕЛЬ 320.5 KB
  ТЕХНОЛОГІЯ ВЛАШТУВАННЯ МАСТИКОВИХ ПОКРІВЕЛЬ Мастикові покрівлі улаштовують з бітумних емульсійних паст і мастик полімерних мастик гарячих бітумних мастик бітумногумових мастик. Захист покрівлі Бронювання нанесення на покрівлю алюмінієвого пилу Засипання гравієм або мармуровим щебенем 2мм Бітумні емульсійні матеріали це дисперсні системи з бітуму емульгаторів наповнювачів і води. Комбіновані покрівлі це різновид мастикових. Залежно від похилу конструкцію водоізоляційного килима такої покрівлі утворює один або два шари звичайних...
35865. ПРЕВРАЩЕНИЯ В СТАЛИ ПРИ ОХЛАЖДЕНИИ 283 KB
  При скорости охлаждения стали обеспечивающей полное протекание диффузионных процессов и соответственно близкое к равновесному состоянию стали в структуре последней согласно диаграмме железо углерод образуется перлит.5 приведена диаграмма изотермического превращения аустенита для эвтектоидной стали 08 С. Диаграмма изотермического превращения аустенита эвтектоидной стали На диаграмме можно выделить следующие области: 1 область устойчивого аустенита для стали содержащей 08 С выше АС1; 2 область переохлажденного аустенита; 3...
35867. БЖД. Содержание, цель и задачи БЖД 101.92 KB
  Как видим она посвящена решению задач сохранения здоровья и жизни человека в среде его обитания. Объединяющим ее началом стали: воздействие на человека одинаковых по физике опасных и вредных факторов среды его обитания общие закономерности реакций на них у человека и единая научная методология а именно количественная оценка риска несчастных случаев профессиональных заболеваний экологических бедствий и т. Цель дисциплины вооружить будущих специалистов теоретическими знаниями и практическими навыками необходимыми для: 1 создания...
35868. Международное частное право. Шпаргалка 99.5 KB
  Принципы МЧП Принципы МЧП это определенные постоянные правила вытекающие из требования рационального урегулирования наиболее типичных случаев особенно в сфере коллизионного права. Общие принципы права непосредственно применяемые в МЧП: нельзя передать другому больше прав чем сам имеешь; принципы справедливости и доброй совести равные возможности равные основания; разумно осмотрительно рачительно как хозяйствующий субъект; недобросовестность когда реализация своего права влечет убытки для другого лица; принципы...
35869. Дроссель с обратным клапаном, конструкции применение 100.36 KB
  21 показан пример конструкции дросселя с обратным клапаном и указано направление потока воздуха. В реальных потоках жидкости присутствуют силы вязкого трения. На это трение затрачивается часть энергии потока. Изза этих потерь энергия потока жидкости по длине потока и в его направлении постоянно уменьшается.
35870. Ассоциация художников революционной России 100.32 KB
  Майская 1922 года Декларация АХРР: âНаш гражданский долг перед человечеством художественнодокументально запечатлеть величайший момент истории в его революционном порыве.Создание в 1925 году инициативной группой учащейся молодежи АХРР. Первый съезд АХРР 1928 г.