Графический модуль Graph имеет ряд процедур и функций,обеспечивающих вывод сообщений различными шрифтами, в горизонтальном и вертикальном направлении с учетом масштабированния, используя установленные процедурами SetTextStyle, SetTextJustify, SetUserCharSize параметры.
Все процедуры вывода текста работают только со строковыми переменными, поэтому вся числовая информация предварительно должна быть преобразована в строковую.
Вывод сообщений на русском языке не осуществляется, т.к. среди стандартных шрифтов отсутствует кириллица.
Стандартный шрифт доступен в модуле в любой момент, т.к. входит в Graph.tpu. Это единственный матричный шрифт, т.е. его символы создаются из матриц 8 * 8 пикселей. Остальные шрифты штриховые : их элементы формируются как совокупность векторов (штрихов), характеризующихся направлением и размером. Преимущество штрихового шрифта в сохранении хорошего качества изображения при изменении размеров выводимых символов.
Каждый из штриховых шрифтов размещается в отдельном файле на диске, поэтому , если в каталоге не найдется файла с соответствующим шрифтом, его вызов игнорируется и подключается
стандартный.
Процедуры Write и Writeln могут выводить сообщения на любом национальном языке после загрузки в память второй половины кодовой таблицы, разработанной заранее.
OutText( Text : string) -процедура вывода текста с текущей позиции. Параметры вывода текста устанавливаются процедурой SetTextJustify. Если текст выходит за границы окна, то при использовании штриховых шрифтов он отсекается, а при установке стандартного штрифта не выводится совсем. При горизонтальном направлении текущий указатель смещается в конец выведенного текста, а при вертикальном - не меняет своего положения.
OutTextXY (x,y:integer; Text:string) - процедура вывода текста, начиная с точки (x,y). Текущий указатель не меняет своего положения.
TextWidth(Text :string):word- функция определения ширины выводимой строки в пикселях. Используется для определения ширины поля вывода, при формировании заголовков в графиках.
TextHeigth(Text : string):word - функция определения высоты выводимой строки в пикселях равной высоте самого высокого символа. Данная процедура используется при вычислении интервала между строками, высоты поля вывода, определения размера заголовка для размещения его в прямоугольнике, на графике и т.д.
Пример.
Uses Graph,Crt;
var
Y,size,Driver,Mode:Integer;
begin
Driver:=Detect;
InitGraph(Driver,Mode,'');
Y:=0;
for size:=1 to 5 do
begin
SetTextStyle(DefaulFont,HorizDir,Size);
OutTextXY(0,Y,' Turbo Graphics');
Inc(Y,TextHeight(' Turbo Graphics'))
end;
readln;
CloseGraph
End.
SetTextStyle(Font, Direction, CharSize : word) - процедура установки текущего шрифта, типа и коэффициента увеличения символов. Параметр Font, указывающий код шрифта,определяется константами:
const
DelaultFont = 0; { стантартный}
TriplexFont = 1; { шрифт тройной: Trip.chr}
SmallFont = 2; { уменьшенный: Litt.chr}
SansSerifFont = 3; { гротесковый: Sans.chr}
GothicFont = 4; { готический: Goth.chr}
Для указания направления вывода текста используются
константы:
const
HorizDir = 0; { слева направо }
VertDir = 1; { снизу вверх }
Параметр CharSize дает возможность изменять размер выво-
димых символов.
Если CharSize равен 1 (стандартный) шрифт представляется в виде матрицы 8 * 8 пикселов, если равен 2, то на экран отображается матрица 16 * 16 и т.д. для CharSize меньше 0, устанавливается размер равный 1, а если больше 10 - устанавливается 10. По умолчанию фиксируется нормальный размер, равный 4.
Пример. Вывод текста всеми видами шрифтов с расчетом интервала между строк.
Uses Graph,Crt;
var
X,Driver,Mode:Integer;
Font:word;
begin
Driver:=Detect;
InitGraph(Driver,Mode,'');
X:=0;
for Font:=0 to 4 do
begin
SetTextStyle(Font,VertDir,2);
OutTextXY(X,0,' Turbo Graphics');
Inc(Y,TextWhidth(' Turbo Graphics'))
end;
readln;
CloseGraph
End.
SetUserCharSize(x1, x2, y1, y2 :word) - процедура установки размеров выводимых символов (ширины и высоты), в соответствии с указанными пропорциями x1, x2, y1, y2. Пропорции задают масштабный коэффициент, определяющий во сколько раз увеличивается ширина и высота выводимых символов по отношению к заданным.
Отношение x1 к x2 - коэффициент изменения символа по горизонтали, y1 к y2 - по вертикали.
Например, для увеличения ширины текста в 2 раза, необходимо задать x1 = 2, x2 = 1.
Процедура SetTextStyle отменяет установки шрифта SetUserCharSize.
Пример.
Uses
Graph,Crt;
var
Driver,Mode:Integer;
begin
Driver:=Detect;
InitGraph(Driver,Mode,'');
{ пример изменения размера выводимых симолов }
SetTextStyle(TriplexFont,Horizdir,4);
OutText(' нормальный ');
SetUserCharSize(1,3,1,1);
OutText(' уменьшеный ');
SetUserCharSize(3,1,1,1);
OutText(' увеличенный ');
readln;
CloseGraph
end.
Выравнивание выводимого текста производится относительно