100 компонентов общего назначения библиотеки Delphi5

Примеры вывода текста методом TextOut

Более изящный вывод обеспечивает метод TextRect. Следующий код рисует в заданном месте канвы формы с координатами (X1,Y1,X2,Y2) красный прямоугольник и внутри него в центре пишет методом TextRect текст, введенный в переменную s. Если текст оказывается длиннее ширины прямоугольника, то он усекается. В данном примере будет видна только середина длинного текста, так как текст выровнен по центру. 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;

Если в приведенном примере заменить оператор TextRect на TextRect(Rect(X1-5, Y1-5, X1+TextWidth(s)+5, Y1+TextHeight(s)+5), X1, Y1, s); то текст будет выводится полностью в красной прямоугольной области, на 5 пикселей отступающей во все стороны от текста. Именно этим отступом, делающим надпись более красивой, этот оператор отличается от всех предыдущих более простых операторов. Примеры вывода текста методом TextRect показаны на Рисунок 3.3. Вверху относительно короткий текст выровнен по середине прямоугольной рамки, в которой он рисуется. Ниже в аналогичной по размерам рамке помещен более длинный текст: «Это очень длинный текст». Вы видите, что текст урезан по размерам рамки. Внизу вы видите вывод, сделанный оператором, аналогичным приведенному выше и обеспечивающим зазор в 5 пикселей во все стороны от надписи любой длины. Очевидно, что это наиболее удачный вариант.


Содержание раздела