Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по Паскалю 3.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
313 Кб
Скачать
☆

Задает выравнивание выводимого по отношению к текущему положению указателя или к заданным координатам. Заголовок:

SetTextGustify (Horiz, Vert: Word)

Здесь, Horiz –горизонтальное, Vert –вертикальное выравнивание.

Выравнивание определяет, как будет размещаться текст: левее или правее указанного места, выше, ниже или по центру. Здесь можно использовать следующие константы:

const

LeftText= 0; {указатель слева от текста}

CenterText= 1; {симметрично слева и справа, сверху и снизу}

RightText= 2; {указатель справа от текста}

BottomText= 0; {указатель снизу от текста}

TopText= 2; {указатель сверху от текста}

Следующая программа иллюстрирует различные способы выравнивания относительно центра графического экрана.

Program DemoViravniv;

Uses Graph;

Var

GrDriver, GrMode: integer;

Begin

GrDriver:= Detect;

InitGraph (GrDriver, GrMode, 'C: |Bp|BGI');

OutTextXY(150,10,'демонстрация выравнивания шрифтов');

line (0,250,500,250);

Line (250,50,250,450);

SetTextStyle (1,0,1);

SetTextJustify (0,0);

OutTextXY(250,250,'LeftText,BottomText ');

SetTextJustify (2,0);

OutTextXY(250,250,'RightText,BottomText');

SetTextJustify (0,1);

OutTextXY(250,250,'LeftText,TopText');

SetTextJustify (2,1);

OutTextXY(250,250,'RightText,TopText');

Readln;

ClearDevice;

line (0,250,500,250);

Line (250,50,250,450);

SetTextJustify (1,0);

OutTextXY(250,250,'CenterText,BottomText');

Readln;

ClearDevice;

line (0,250,500,250);

Line (250,50,250,450);

SetTextJustify (1,1);

OutTextXY(250,250,'CenterText,TopText');

Readln;

End.

Процедура SetUserCharSize

Изменяет размер выводимых символов в соответствии с заданными пропорциями.

Заголовок:

Procedure SetUserCharSize (X1, X2, Y1, Y2, Word);

Здесь, X1, X2, Y1, Y2 – выражения типа Word, определяющие пропорции по горизонтали и вертикали.

Процедура применяется только по отношению к векторным шрифтам. Пропорции задают масштабный коэффициент, показывающий, во сколько раз увеличивается ширина и высота выводимых символов по отношению к стандартно заданным значениям. Коэфффициент по горизонтали находится как отношение X1 к X2, по вертикали –как отношение Y1 к Y2. Чтобы, например, удвоить ширину символов, необходимо задать X1 = 2 и X2 = 1. Стандартный размер симолов устанавливается процедурой SetTextStyle, которая отменяет предшествующее ей обращение к SetUserCharSize.

Следующая программа демонстрирует изменение пропорций шрифтов.

Program DemoViravniv;

Uses Graph;

Var

GrDriver, GrMode, i, j: integer;

Begin

GrDriver:= Detect;

InitGraph (GrDriver, GrMode, 'C: |Bp|BGI');

OutTextXY(150,10,'демонстрация пропорций шрифтов');

SetTextStyle (4,0,5);

SetBkColor (Blue);

For i: = 1 to 10 do

for j: = 1 to 10 do

begin

ClearDevice;

SetUserCharSize(j,1,i,1);

OutTextXY(100,100, 'My Text');

readln;

end;

End.

Функция TextWidth

Возвращает длину в пикселах выводимой текстовой строки.

Заголовок:

Function TextWidth (Txt:string):Word;

В данной функции учитываются текущий стиль вывода и коэффициенты изменения размеров символов, заданные процедурами SetTextStyle и SetUserCharSize

Функция TextHeight

Возвращает высоту шрифта в пикселах.

Заголовок:

Function TextHeight (Txt:string):Word;

Процедура GetTextSettings

Возвращает текущий стиль и осуществляет выравнивание текста.

Заголовок:

Procedure GetTextSettings (var TextInfo: TextSettings Type);

Здесь, TextInfo –переменная типа TextSettings Type, который в модуле Graph определен следующим образом:

Type

TextSettings Type=record

Font :Word; {номер шрифта}

Direction:Word; {направление}

CharSize :Word; {код размера}

Horiz: :Word; {горизонтальное выравнивание}

Vert :Word; {вертикальное выравнивание}

end;

Функция InstallUserFont

Позволяет программе использовать нестандартный векторный шрифт.

Заголовок:

Function InstallUserFont (FileName: String): integer;

Здесь, FileName –имя файла, содержащего векторный шрифт

Функция возвращает идентификационный (?) нестандартного шрифта, который может использоваться при обращении к процедуре SetTextStyle.