Шаг 78.
Visual Prolog.
Вывод текста

    На этом шаге мы рассмотрим вывод текста.

    При выводе текста на экран существует много настраиваемых свойств.

   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.

Таблица 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)

    На следующем шаге мы рассмотрим шрифты.




Предыдущий шаг Содержание Следующий шаг