Войти на сайт ( )
[Вход] [Регистрация]
Компьютеры » Программирование » Delphi [[deleted]]
[Обновить]
[ Ответить ]
[Добавить в закладки]
Страница: 1, 2, 3 ... 6, 7, 8 ... 19, 20, 21
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

Далее »
« Назад
Страница: 1, 2, 3 ... 6, 7, 8 ... 19, 20, 21
[ Ответить ]
[Обновить]
[Добавить в закладки]
Компьютеры » Программирование » Delphi [[deleted]]
На главную
© c.sasisa.me