Gaist-Endruy
( off
)
(
13:39 11-04-2009
)
Основной недостаток такого вывода заключается в том, что рамка текста получается без зазоров. Такой вывод выглядит некрасиво. Вероятно, вывод этой функцией оправдан только в случае, если цвет фона (свойство Canvas.Brush.Color) совпадает с цветом поверхности компонента, на канву которого выводится текст. В этом случае он просто появится без рамки.
Gaist-Endruy
( off
)
(
13:40 11-04-2009
)
Более изящный вывод обеспечивает метод TextRect. Следующий код рисует в заданном месте канвы формы с координатами (X1,Y1,X2,Y2) красный прямоугольник и внутри него в центре пишет методом TextRect текст, введенный в переменную s.
Gaist-Endruy
( off
)
(
13:40 11-04-2009
)
Если текст оказывается длиннее ширины прямоугольника, то он усекается. В данном примере будет видна только середина длинного текста, так как текст выровнен по центру.
Gaist-Endruy
( off
)
(
13:40 11-04-2009
)
var s : string;
X1,Y1,X2,Y2:integer;
s := ...
X1:=100;
Y1:=100;
X2:=200;
Y2:=150;
with Canvas do
begin
Brush.Color:=clRed;
TextRect(Rect(X1, Y1, X2, Y2),
X1+(X2-X1-TextWidth(s)) div 2,
Y1+(Y2-Y1-TextHeight(s)) div 2, s)
end;
end;
Gaist-Endruy
( off
)
(
13:40 11-04-2009
)
Если в приведенном примере заменить оператор TextRect на
Gaist-Endruy
( off
)
(
13:41 11-04-2009
)
TextRect(Rect(X1-5, Y1-5, X1+TextWidth(s)+5,
Y1+TextHeight(s)+5), X1, Y1, s);
Gaist-Endruy
( off
)
(
13:41 11-04-2009
)
то текст будет выводится полностью в красной прямоугольной области, на 5 пикселей отступающей во все стороны от текста.
Gaist-Endruy
( off
)
(
13:41 11-04-2009
)
менно этим отступом, делающим надпись более красивой, этот оператор отличается от всех предыдущих более простых операторов.
Gaist-Endruy
( off
)
(
13:42 11-04-2009
)
В целом можно сказать, что прямой вывод текста на канву описанными методами имеет смысл использовать только в исключительных случаях.
Gaist-Endruy
( off
)
(
13:42 11-04-2009
)
В целом можно сказать, что прямой вывод текста на канву описанными методами имеет смысл использовать только в исключительных случаях. Таким исключительным случаем является вывод каких-то надписей в компонент Image