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


 

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

81845. Себестоимость перевозок, особенности определения и различия по видам транспорта 27.43 KB
  Наибольшее влияние на нее оказывают следующие факторы: объем и дальность перевозок густота перевозок на 1 км линии грузоподъемность или пассажировместимость подвижного состава вагонов судов автомобилей автобусов самолетов и т. Особенно заметно повышение себестоимости грузовых перевозок на железнодорожном морском и речном транспорте. Повышение себестоимости перевозок обусловлено в основном повышением уровня заработной платы и оптовых цен на топливо подвижной состав машины оборудование и другие материалы.
81847. Основные свойства транспортного узла 26.03 KB
  Узлы играют важную роль в организации комбинированных перевозок и совершенствовании взаимодействия различных видов транспорта. В зависимости от хозяйственного профиля города можно выделить транспортные узлы обслуживающие: центры обрабатывающей промышленности центры добывающей промышленности многоотраслевые центры непромышленные и курортные центры. Классифицируются узлы и по числу взаимодействующих видов транспорта. Кроме того по расположению узлов в транспортной системе узлы бывают транзитные обслуживающие преимущественно транзитные...
81848. Значение транспорта в развитии экономики страны 26.12 KB
  Транспортный комплекс Казахстана включающий в себя железнодорожный автомобильный водный и воздушный транспорт сеть автомобильных дорог с твердым покрытием трубопроводный и городской электрический транспорт ежегодно в среднем перевозит около 400 млн.т грузов и свыше 750 млн. Транспортная система Казахстана обеспечивает перевозки в среднем в год 70 млн. угля 1415 млн.
81849. Автомобильный транспорт. Зарождение и развитие а/т, его роль в ЕТС. Достоинства и недостатки 27.23 KB
  Первый отечественный автомобиль с двигателем внутреннего сгорания создан в С. Выдающимся русским автоконструктором с мировым именем был Борис Григорьевич Луцкий который в начале 90х годов прошлого столетия спроектировал несколько двигателей внутреннего сгорания предназначавшихся для самодвижущихся экипажей но отечественная промышленность еще не была готова к их освоению. 1 по виду двигателя: внутреннего сгорания карбюраторные дизельные газобаллонные газотурбинные электрические солнечные 2 грузоподъемности: малый средний...
81850. Процессы взаимодействия в транспортных узлах 27 KB
  Основная масса грузовых и пассажирских перевозок осуществляется с участием 2 х и более видов транспорта. Практически вся нефть из трубопроводов передается на другие виды транспорта а автомобиль взаимодействует со всеми видами транспорта особенно велик его вес для пассажирских перевозок. Во взаимодействии различных видов транспорта должна возродиться ЕТС единая транспортная система. Взаимодействие различных видов транспорта заключается в слаженной и согласованной работе транспорта в общем перевозочном процессе.
81851. Железнодорожный транспорт. Достоинства и недостатки 27.17 KB
  Но в неё в силу природных условий входили вспомогательные субъекты больницы школы общепит учреждения культуры и другие. В законодательном порядке определена государственная политика в области железнодорожного транспорта направленная на создание условий для удовлетворения потребностей населения и экономики страны в перевозках. Преимущества: быстрая доставка на большие расстояния; независимость от климатических условий; большая грузоподъёмность 34 тыс.
81852. Понятие о транспортно-экономических балансах 21.37 KB
  Транспортно-экономический баланс состоит из трех основных частей: баланс производства или отправления грузов их потребления или прибытия объема перевозок и транспортно-экономических связей. Оптимальные внутрирайонные и межрайонные связи являются исходной базой для определения потоков грузов по участкам транспортной сети грузооборота и средней дальности перевозок. невозможности определения коэффициента повторное перевозок; отсутствие учета объема перевозок тары и др.