Вывод текста

 

OutText (текст) – процедура выводит текстовую строку, начиная с текущего положения указателя.

 

OutTextXY (x,y,текст) – процедура выводит строку, начиная с позиции (x,y).

 

SetTextStyle(шрифт,направление,размер) – процедура устанавливает стиль текстового вывода на графический экран. Здесь шрифт – код (номер) шрифта; направление –код направления; размер – код размера шрифта.

Код шрифта задается одной из следующих предварительно определенных констант:

Const

DefaultFont=0; {Точечный шрифт 8x8}

TriplexFont=1; {Утроенный шрифт TRIP.CHP}

SmallFont=2; {Уменьшенный шрифт LITT.CHR}

SansSerifFont=3; {Прямой шрифт SANS.CHR)

GothicFont=4; {Готический шрифт GOTH.CHR}

Шрифт DefaultFont входит в модуль Graph и доступен в любой момент. Это – единственный матричный шрифт, т.е. его символы создаются из матриц 8x8 пиксел. Все остальные шрифты – векторные: их элементы формируются как совокупность векторов (штрихов), характеризующихся направлением и размером. Векторные шрифты отличаются более богатыми изобразительными возможностями, но главная их особенность заключается в легкости изменения размеров без существенного ухудшения качества изображения. Каждый из этих шрифтов размещается в отдельном дисковом файле. Если нужно использовать какой-либо векторный шрифт, соответствующий файл должен находиться в текущем каталоге, в противном случае вызов этого шрифта игнорируется и подключается стандартный шрифт.

Для задания направления выдачи текста можно использовать константы:

Const

HorizDir=0; {Слева направо}

VertDir=1; {Снизу вверх}

Каждый шрифт способен десятикратно изменять свои размеры. Размер выводимых символов может иметь значение в диапазоне от 1 до 10 (точечный шрифт – в диапазоне от 1 до 32). Если значение параметра равно 0, устанавливается размер 1, если больше 10 – размер 10.

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

Const

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

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

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

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

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

 

SetUserCharSize(x1,х2,y1,y2) – процедура изменяет размер выводимых символов в соответствии с заданными пропорциями. Здесь x1,x2,y1,y2 выражения типа Word, определяющие пропорции по горизонтали и вертикали. Процедура применяется только по отношению к векторным шрифтам. Пропорции задают масштабный коэффициент, показывающий во сколько раз увеличится ширина и высота выводимых символов по отношению к стандартно заданным значениям. Коэффициент по горизонтали находится как отношение x1к x2, по вертикали – как отношение y1к y2. Чтобы, например, удвоить ширину символов, необходимо задать x1=2и x2=1. Стандартный размер символов устанавливается процедурой SetTextStyle, которая отменяет предшествующее ей обращение к SetUserCharSize.

 

TextWidth (текст) – функция возвращает длину в пикселах выводимой текстовой строки. Учитываются текущий стиль вывода и коэффициенты изменения размеров символов, заданные соответственно процедурами SetTextStyleи SetUserChrSize.

 

TextHeight (текст) – функция возвращает высоту шрифта в пикселах.

 

GetTextSettings (TextInfo) – процедура возвращает текущий стиль и выравнивание текста. Здесь TextInfoпеременная типа TextSettingsType, который в модуле Graphопределен следующим образом:

Type

TextSettingsType=record

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

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

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

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

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

end;

 

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

 

Пример работы со шрифтами и выравниванием текста следующего вида:

    Текст сверху справа
Текст слева снизу    

Uses Crt,Graph;

Var

Driver, Mode:Integer;

Begin

Driver:=Detect;

InitGraph(Driver,Mode,'');

{Выводим перекрестные линии в центре экрана}

Line(0,GetMaxY div 2, GetMaxX,GetMaxY div 2);

Line(GetMaxX div 2,0,GetMaxX div 2,GetMaxY);

{Располагаем текст справа сверху от центра}

SetTextStyle(TriplexFont,HorizDir,3);

SetTextJustify(LeftText,BottomText);

OutTextXY(GetMaxX div 2,GetMaxY div 2,

'Текст справа сверху');

{Располагаем текст слева и снизу от центра}

SetTextJustify(RightText,TopText);

OutTextXY(GetMaxX div 2,GetMaxY div 2,

'Текст слева снизу');

Readln;

CloseGraph;

End.