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

Изменение ориентации подписей на вкладках в компоненте TPageControl в Delphi 2009 Pro

Delphi , Компоненты и Классы , Вкладки и Страницы

Вопрос, поднятый пользователем, связан с необходимостью изменения ориентации текста на вкладках компонента TPageControl в среде разработки Delphi 2009 Pro. Пользователь, имеющий опыт работы с Java, столкнулся с особенностями наследования объектов в Delphi и хотел бы, чтобы надписи на вкладках располагались сверху вниз, а буквы в тексте были повернуты так, чтобы они читались в нормальной ориентации.

Решение проблемы

Для решения поставленной задачи необходимо использовать владельский рисование вкладок (owner drawing). Это позволит изменить внешний вид вкладок, включая ориентацию текста. В качестве альтернативы можно рассмотреть использование сторонних компонентов, расширяющих функциональность TPageControl, однако, это выходит за рамки данного вопроса.

Подтвержденный ответ

Для реализации владельского рисования вкладок, необходимо выполнить следующие шаги:

  1. Установить свойства TPageControl:
TabPosition := tpLeft;
OwnerDraw := True;
TabWidth := 180; // установить в любое подходящее значение, так как TPageControl не имеет события измерения
  1. Использовать следующий код для события OnDrawTab:
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
  I: Integer;
  PageControl: TPageControl;
  TextFormat: TTextFormat;
  Text: string;
  TextRect: TRect;
begin
  PageControl := Control as TPageControl;

  Text := PageControl.Pages[TabIndex].Caption;

  for I := Length(Text) - 1 downto 1 do
  begin
    Text := Copy(Text, 1, I) + #10 + Copy(Text, I+1, MaxInt); // Разделяем текст на строки
  end;

  TextRect := Rect;
  TextRect.Left := TextRect.Left + 5;
  TextRect.Top := TextRect.Top + 3;

  TextFormat := [tfCenter];

  if Active then
    TextFormat := TextFormat + [tfHighlight];

  // Поворот текста на 90 градусов, если необходимо
  // PageControl.Canvas.Font.Orientation := 900;

  PageControl.Canvas.TextOutFmt(TextRect, Text, TextFormat);
end;
  1. Скомпилировать проект и наслаждаться результатом.

Комментарии:

Если необходимо повернуть текст на 90 градусов, установите свойство Canvas.Font.Orientation в значение 900 или 2700 (десятые доли градуса).

Альтернативные подходы

Помимо владельского рисования, можно рассмотреть использование сторонних компонентов, таких как Raize Controls или JVCL, которые предоставляют более гибкие возможности для рендеринга и темирования контролов.


В данной статье был описан подход к изменению ориентации текста на вкладках компонента TPageControl с использованием владельского рисования. Это позволяет пользователям Delphi 2009 Pro гибко настраивать внешний вид вкладок в соответствии с их требованиями.

Создано по материалам из источника по ссылке.

Вопрос связан с необходимостью изменения ориентации текста на вкладках компонента `TPageControl` в Delphi 2009 Pro, используя владельское рисование для достижения вертикального расположения надписей.


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

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




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


:: Главная :: Вкладки и Страницы ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-01-22 14:46:13/0.0035099983215332/0