Иногда необходимо узнать какой размер занимает строка, но не количество символов, а значение в пикселях. Ведь не все шрифты моноширинные, где размер всех символов одинаков.
Итак, для того, чтобы узнать размер строки будем пользоваться функцией TextWidth() объекта TCanvas.
function TCanvas.TextWidth(const Text: string): Integer;
Например, нужно узнать ширину строки "Добрый день!". В обработчике события клика по кнопке пишем:
var w: integer;
...
w := Canvas.TextWidth('Добрый день!');
ShowMessage(IntToStr(w));
Тут все просто. Функция TextWidth возвращает тот самый размер который нам нужен. После того, как получили размер, просто выводим его значение с помощью ShowMessage(), чтобы поглядеть, что же мы получили.
А как узнать ширину строки жирного начертания? Ведь такая строка будет занимать больший размер! Да тут все просто. Ведь функция TextWidth() это метод объекта TCanvas. А у TCanvas можно установить любые параметры шрифта. Например:
Canvas.Font.Size := 50; // изменим размер
Canvas.Font.Style := [fsBold]; // сделаем шрифт жирного начертания
Просто нужно установить нужный стиль шрифта перед вычислением.
Также хочу заметить, в примерах я использовал канву формы.
Помимо функции TextWidth() для вычисления ширины, существует функция TextHeight() для вычисления высоты.
Просмотров: 16391
Copyright © 2008 - 2018 Программирование на Delphi для начинающих и не только.
Полнота авторских прав на все материалы, опубликованные на сервере DelphiDevelop.ru принадлежит их авторам.
Перепечатка материалов разрешается с указанием авторства и гиперссылки на первоисточник информации.