На этом шаге мы рассмотрим вывод текста.
При выводе текста на экран существует много настраиваемых свойств.
draw_Text(Window,X,Y,String) draw_Text(Window,X,Y,String,DrawLength)
Предикат draw_Text выводит первые DrawLength символов из строки String в окно Window, где X и Y - логические координаты верхнего левого угла первой буквы в строке. Параметр DrawLength можно не заполнять или установить его равным -1 для того, чтобы вывести всю строку.
draw_TextInRect(Window,Rct,String,DrawLength,ilist DrawFlags)
Функция draw_rextInRect выводит первые DrawLength символов из строки String внутри ограничивающего прямоугольника, используя текущий шрифт. Варианты dtext_Flag показаны в таблице 1.
Идентификатор флага | Значение |
---|---|
dtext_center | Центрирует текст по горизонтали в прямоугольнике |
dtext_left | Выравнивает текст по левому краю прямоугольника |
dtext_right | Выравнивает текст по правому краю прямоугольника |
dtext_vcenter | Центрирует текст по вертикали. Работает только в сочетании с константой dtext_singleline |
dtext_bottom | Выравнивает текст по нижнему краю прямоугольника. Работает только в сочетании с константой dtext_singleline |
dtext_top | Выравнивает текст по верхнему краю прямоугольника |
dtext_singleline | Определяет одиночную строку. Символы '\n' игнорируются |
dtext_noclip | Выводит текст без отсечения по границе прямоугольника |
dtext_externalleading | Отключает настройку размера шрифта к высоте строки |
Часто важно заранее знать, каков будет размер текстовой строки. Предикат win_GetTextExtent/5 возвращает высоту и ширину (в логических единицах) прямоугольника, который мог бы содержать данный текст. Третий параметр содержит число символов, которые должны быть измерены. Если установить этот параметр равным - 1, то в измерение будет включена вся строка:
Text="This is a test", win_GetTextExtent(Window,Text,-1,Width,Height)
Для изменения цвета изображения и фона текста используются два предиката:
win_SetBackColor(Window,Color) win_SetForeColor(Window,Color)
Не существует предикатов для непосредственного получения текущих цветов изображения и фона, однако они могут быть извлечены из структуры draw_tools, возвращаемой предикатом win_GetDrawTools для данного окна.
Если текущий стиль фона bk_opaque, то прямоугольник закрашивается цветом, который был установлен последним вызовом предиката win_SetBackColor/2. Если стиль фона bk_Transparent, то текст выводится на существующем фоне:
%выводит текст белым цветом на красном фоне
win SetForeColor(Window,color_White),
win_SetBackColor(Window,color_Yellow),
win setBackMode(Window,bk_Opaque),
Text="This is some text",
X=20, Y=20,
draw_Text(Window,X,Y,Text)
На следующем шаге мы рассмотрим шрифты.