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


 

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

36473. Древний Египет 29 KB
  групп перед властью Моноотраслевая экономика всегда ведет к жесткой политической системе с одним центром силы Главное достижение – появление профессиональной армии Межгосударственная дипломатия – появление письменных договоров мир на вечные времена Единое централизованное государство – главное в политике Духовная жизнь Агрокультурный календарь Развитие государства и налоговой базы обеспечение финансовой системы государства а затем и бюрократической появление письменности Наука эмпирическая – путем наблюдения теоретическая...
36474. Древне-китайская цивилизация 28 KB
  иерархии Прядение и ткачество Более крупные поселения Оседлое мотыжное земледелие Специализация районов Внедрение оружий из металла Рыболовство и скотоводство Массовое производство керамики гончарный круг Жреческая культура Особенность – существовала в рамках неолита экономика отдельных поселений так и не стала централизованной на отдельной отрасли – зачатки полиотраслевой экономики Рубеж перехода – образование протогосударства появление города Шан Шелк Тутовое дерево Строительство дамб Развитие экономических...
36475. Неолитическая цивилизация 51.5 KB
  лесов быстро исчерпались Саванны – нет земледелия переселение в субтропики Неолитическая катастрофа выжило 1000 чел Начало новой ц.
36476. Древняя Персия 27 KB
  За помощь в осуществлении контроля над обществом им предоставлялась наибольшая политическая самостоятельность Частный интерес работает на общественный Внешняя политика Восточное побережье Эгейского моря Греция – колонии господство над торговлей в средиземном море Внешняя политика обусловлена экономической структурой: цель – экономически важные регионы.
36477. Древние Шумеры 30.5 KB
  долина рек Тигр и Ефрат Неблагоприятные условия сухой климат мало полезных ископаемых Тростник и рыба – самые доступные ресурсы Население сосредоточено в предморье и не углублялось во влажные равнины Увеличение численности населения перенаселение Технологии Сельскохозяйственные культуры ячмень эммера Одомашнен ряд животных быки овцы козы свиньи и ослы Примитивные технологии обработки меди Колесо Первые постройки из сырого глиняного кирпича Шумеры пытаются вести с х на новых землях строят системы очищения почвы....
36478. Понятия «цивилизация». Подходы к толкованию термина. Цивилизационная теория 93.5 KB
  Понятия цивилизация впервые употребил Виктор Мирабо в 1757 году в значении общего уровня культурного развития. Среди деятелей просвещения цивилизация ассоциировалась с концепцией прогресса стала идеалом интеллектуального и социального развития человечества. Отсюда ясно что цивилизация носила отрицательный оттенок.
36479. Структура цивилизация, ее основные элементы 73 KB
  технологический способ производства: орудия труда источники энергии предметы труда природные ресурсы технологии организация производства в плане технологий экономический способ производства структура воспроизводства обмен распределение экономическое управление социальнополитические отношения: социальные отношения национальные отношения политические отношения государственные отношения правовые духовный мир: наука культура образование мораль идеология или религия Все элементы цивилизационной...
36480. Динамика развития цивилизации, этапы ее развития на историческом примере 46.5 KB
  В истории человечества выделяют следующие глобальные цивилизации: неолитическую раннеклассовую античную средневековую индустриальную и наконец постиндустриальную цивилизации. Условия формирования античной цивилизации. Безусловно их наследие оказало определенное влияние на становление античной цивилизации тем не менее античный период в истории человечества дал рождение совершенно новым экономическим политическим и духовным институтам.
36481. Переходный период (смена цивилизаций): основные этапы и итоги 35 KB
  Механизм смены цивилизации Основные причины: внутренние противоречия в которых центральное место занимают потребности человека. Для производства материальных и духовных благ цивилизации приходится привлекать новые ресурсы средства труда источники энергии реализовывать новые экономические и политические схемы подавлять социальные конфликты и предлагать новый духовный продукт. Попытки удовлетворения потребностей нарушают сложившийся в цивилизации баланс и она не может удовлетворить потребности всех. Духовный мир чутко реагирует на эти...