Вывод текста
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.