Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Печать повернутого текста 4

Delphi , Графика и Игры , Canvas

Печать повернутого текста 4

Приведенное выше решение (1) очень медленно, так как требует рисования текста и содержит, на мой взгляд, неэффективный метод вращения. Попробуйте взамен это:


procedure TForm1.TextUp(aRect:tRect;aTxt:String);
var 
  LFont: TLogFont; 
  hOldFont, hNewFont: HFont;
begin
  GetObject(Canvas.Font.Handle,SizeOf(LFont),Addr(LFont));
  LFont.lfEscapement := 900;
  hNewFont := CreateFontIndirect(LFont);
  hOldFont := SelectObject(Canvas.Handle,hNewFont);
  Canvas.TextOut(aRect.Left+2,aRect.Top,aTxt);
  hNewFont := SelectObject(Canvas.Handle,hOldFont);
  DeleteObject(hNewFont);
end;

Текстовый код:

Процедура TextUp(aRect: TRect; aTxt: string); var hFont: HFONT; LFont: LOGFONT; begin // Получение текущего объекта шрифта hFont := GetObject(GetCurrentObject());

// Создание нового логического объекта шрифта (LFont) LFont.lfEscapement := 900; // Угол поворота текста в градусах LFont.lfHeight := 0; LFont.lfWidth := 0; LFont.lfItalic := False; LFont.lfStrikeOut := False; LFont.lfUnderline := False;

// Создание нового объекта шрифта из логического объекта hFont := CreateFontIndirect(LFont);

// Установка нового объекта шрифта как текущего для канваса SelectObject(GetCurrentObject(), hFont);

// Вывод текста на канвасе с поворотом Canvas.TextOut(aRect.Left + 2, aRect.Top, aTxt);

// Восстановление оригинального объекта шрифта SelectObject(GetCurrentObject(), hFont);

// Удаление нового объекта шрифта для освобождения ресурсов DeleteObject(hFont); end.

В статье представлен более эффективный способ печати повернутого текста в Delphi, использующий создание временного шрифта с поворотом и его последующее выбор.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Canvas ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-15 22:09:11/0.0045499801635742/1