Главная | Регистрация | Вход
Вторник, 05.08.2025, 20:36
Приветствую Вас Гость | RSS
Навигация:
Категории:
Базы данных [9]
Графика и Игры [0]
Интернет и Сети [0]
Компоненты и Классы [0]
Мультимедиа [0]
ОС и Железо [0]
Программа и Интерфейс [0]
Технологии [0]
Файловая система [0]
Программирование на Delphi [23]
Обучающие статьи [26]
Небольшие уроки по Delphi
Синтаксис [0]
Рабочий стол [0]
qwerty [0]
Чат сайта:
Главная » Статьи » Программирование на Delphi

Вертикальный TitleBar
Code
type
  TForm1 = class(TForm)
  procedure FormResize(Sender: TObject);
  procedure FormPaint(Sender: TObject);
  private
  procedure VerticalTitleBar(Texto: string; Size: Integer);
  end;

  const
  MY_TITLE_TEXT = 'Vertical Text';
  var
  Form1: TForm1;

  implementation

  {$R *.DFM}

  procedure TForm1.VerticalTitleBar(TexTo: string; Size: Integer);
  var
  LogFont: TLogFont;
  tmpCanvas: TCanvas;
  tmpRect: TRect;
  x1, x2, y1, y2: integer;
  begin
  tmpCanvas := TCanvas.Create;
  tmpCanvas.Handle := GetWindowDc(Handle);
  try
  GetObject(Canvas.Font.Handle, SizeOf(LogFont), @LogFont);
  with LogFont do
  begin
  lfEscapement := 90 * 10;
  lfOrientation := 90 * 10;
  lfOutPrecision := OUT_TT_ONLY_PRECIS;
  lfFaceName := 'Arial';
  lfHeight := Size;
  lfWeight := FW_BOLD;
  lfQuality := PROOF_QUALITY;
  end;
  with tmpCanvas do
  begin
  Font.Handle := CreateFontIndirect(LogFont);
  Font.Color := clWhite;
  Brush.Color := clNavy;
  end;
  x1 := GetSystemMetrics(SM_CXEDGE) + GetSystemMetrics(SM_CXBORDER);
  x2 := 20;
  y1 := GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CYEDGE) +
  GetSystemMetrics(SM_CYBORDER) + 1;
  y2 := Height - GetSystemMetrics(SM_CYEDGE) - GetSystemMetrics(SM_CYBORDER);
  tmpRect := Rect(x1, y1, x2, y2);
  tmpCanvas.FillRect(tmpRect);
  DrawText(tmpCanvas.Handle, PChar(Texto), - 1, tmpRect, DT_BOTTOM or
  DT_SINGLELINE);
  finally
  tmpCanvas.Free;
  end;
  end;

  procedure TForm1.FormResize(Sender: TObject);
  begin
  VerticalTitleBar(MY_TITLE_TEXT, 12);
  end;

  procedure TForm1.FormPaint(Sender: TObject);
  begin
  VerticalTitleBar(MY_TITLE_TEXT, 12);
  end;

  end.
Категория: Программирование на Delphi | Добавил: NekitoS (19.04.2009)
Просмотров: 561 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
Контакты
ICQ:306182
Статистика
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Copyright "Delphi Project Ltd" © 2025