{ Эта процедура устанавливает угол вывода текста
для указанного Canvas, угол в градусах
Шрифт должен быть TrueType }procedure CanvasSetTextAngle(c: TCanvas; d: single);
var
LogRec: TLOGFONT; { Информация о шрифте }begin{Читаем текущюю инф. о шрифте }
GetObject(c.Font.Handle,SizeOf(LogRec) ,Addr(LogRec) );
{ Изменяем угол }
LogRec.lfEscapement := round(d*10);
{ Устанавливаем новые параметры }
c.Font.Handle := CreateFontIndirect(LogRec);
end;
Текст на холсте можно вращать с помощью процедуры CanvasSetTextAngle, предоставленной в коде.
Вот что делает эта процедура:
Она устанавливает угол вывода текста для указанного объекта TCanvas, измеряемый в градусах.
Шрифт должен быть TrueType-шрифтом.
Процедура принимает два параметра:
c: Ссылка на объект TCanvas, чей угол текста устанавливается.
d: Угол (в градусах), под которым будет вращаться текст.
Работает она следующим образом:
Она читает текущую информацию о шрифте с помощью GetObject.
Она модифицирует значение escapement LOGFONT-структуры, которое контролирует вращение текста. Используется функция round для преобразования входного угла d в целочисленное значение.
Она устанавливает новые параметры шрифта с помощью CreateFontIndirect.
Чтобы использовать эту процедуру, обычно вызывается она из обработчика события OnPaint формы, например:
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
Canvas.SetTextAngle(PaintBox1.Canvas, 45.0); // Вращает текст на 45 градусов
Canvas.TextOut(10, 10, 'Вращенный текст');
end;
В этом примере процедура SetTextAngle используется для вращения вывода текста в контроле PaintBox формы под углом 45 градусов.
Если вам нужно достичь более сложных опций форматирования текста или вращения, вы можете рассмотреть использование третьей-сторонней библиотеки или создать свой собственный кастомный решений.
В статье описывается процедура вращения текста на Canvas в Delphi, которая устанавливает угол вывода текста для указанного Canvas и изменяет параметры шрифта для достижения желаемого результата.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.