Для вывода текста на
поверхность графического объекта используется метод TextOut. Инструкция вызова
метода TextOut в общем виде выглядит следующим образом:
Объект.Canvas.TextOut(x,
у, Текст)
где:
Рис. 10.3. Координаты
области вывода текста
Шрифт, который используется
для вывода текста, определяется значением свойства Font соответствующего объекта
canvas. Свойство Font представляет собой объект типа TFont. В табл. 10.7 перечислены
свойства объекта TFont, позволяющие задать характеристики шрифта, используемого
методами TextOut и TextRect для вывода текста.
Таблица 10.7.
Свойства объекта TFont
Свойство |
Определяет |
||
Name
Size
Style |
Используемый шрифт. В
качестве значения следует использовать название шрифта, например Arial Размер шрифта в пунктах
(points). Пункт— это единица измерения размера шрифта, используемая
в полиграфии. Один пункт равен 1/72 дюйма Стиль начертания символов.
Может быть: нормальным, полужирным, курсивным, подчеркнутым, перечеркнутым.
Стиль задается при помощи следующих констант: fsBold (полужирный),
fsltalic (курсив), f sUnderline (подчеркнутый), f sStrikeOut (перечеркнутый). |
||
Свойство |
Определяет |
||
style
Color |
Свойство style является
множеством, что позволяет комбинировать необходимые стили. Например,
инструкция программы, устанавливающая стиль "полужирный курсив",
выглядит так: Объект. Canvas . Font
: = [fsBold, fs Italic] Цвет символов. В качестве
значения можно использовать константу типа Tcolor |
||
Внимание!
Область вывода текста закрашивается текущим цветом кисти. Поэтому перед выводом текста свойству Brush.Color нужно присвоить значение bsClear или задать цвет кисти, совпадающий с цветом поверхности, на которую выводится текст.
Следующий фрагмент
программы демонстрирует использование функции Textout для вывода текста на поверхность
формы:
with
Form1.Canvas do
begin
// установить характеристики шрифта
Font.Name := 'Tahoma';
Font.Size
:= 20;
Font.Style
:= [fsltalic, fsBold] ;
Brush.Style
:= bsClear; // область вывода текста не закраши-
TextOut(0, 10, 'Borland Delphi 7');
end;
После вывода текста
методом Textout указатель вывода (карандаш) перемещается в правый верхний угол
области вывода текста.
Иногда требуется вывести
какой-либо текст после сообщения, длина которого во время разработки программы
неизвестна. Например, это может быть слово "руб." после значения числа,
записанного прописью. В этом случае необходимо знать координаты правой границы
уже выведенного текста. Координаты правой границы текста, выведенного методом
Textout, можно получить, обратившись к свойству PenPos.
Следующий фрагмент
программы демонстрирует возможность вывода строки текста при помощи двух инструкций
Textout.
with
Form1.Canvas do
begin
TextOut(0, 10, 'Borland ') ;
TextOut(PenPos.X, PenPos.Y, 'Delphi 7');
end;