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

Многострочный заголовок у TBitBtn

Delphi , Компоненты и Классы , Кнопки

Многострочный заголовок у TBitBtn

Автор: Neil Rubenking

Выводите текст непосредственно на glyph'e TBitBtn'а:


procedure TForm1.FormCreate(Sender: TObject);
var
  R : TRect;
  N : Integer;
  Buff : array[0..255] of Char;
begin
  with BitBtn1 do
  begin
    Caption := 'Delphi World is COOL programm!';
    Glyph.Canvas.Font := Self.Font;
    Glyph.Width := Width - 6;
    Glyph.Height := Height - 6;
    R := Bounds(0, 0, Glyph.Width, 0);
    StrPCopy(Buff, Caption);
    Caption := '';
    DrawText(Glyph.Canvas.Handle,Buff,StrLen(Buff),R,
    DT_CENTER or DT_WORDBREAK or DT_CALCRECT);
    OffsetRect(R,(Glyph.Width - R.Right) div 2,
    (Glyph.Height - R.Bottom) div 2);
    DrawText(Glyph.Canvas.Handle,Buff,StrLen(Buff),R,
    DT_CENTER or DT_WORDBREAK);
  end;
end;

Пример кода на языке Delphi, который предназначен для установки многострочного заголовка на контроле TBitBtn с помощью свойства Glyph. Свойство Glyph позволяет рисовать пользовательские графики и текст прямо на кнопку.

Вот шаг за шагом, что делает код:

  1. В обработчике события FormCreate он устанавливает свойство Caption для контрола BitBtn1 в значение "Delphi World is COOL programm!".
  2. Затем он задает шрифт для канваса Glyph, чтобы он соответствовал шрифту основной формы.
  3. Properties Width и Height для Glyph устанавливаются, чтобы они подходили к границам кнопки.
  4. Временный буфер (Buff) объявляется и заполняется текстом из свойства Caption с помощью функции StrPCopy.
  5. Свойство Caption сбрасывается в пустую строку.
  6. Метод DrawText вызывается на канвасе Glyph, чтобы нарисовать текст на кнопке. Используются константы DT_CENTER, DT_WORDBREAK и DT_CALCRECT для указания, как должен быть нарисован текст:
  7. DT_CENTER: центрирует текст горизонтально в прямоугольнике.
  8. DT_WORDBREAK: позволяет тексту обрываться на новую строку, если он превышает ширину прямоугольника.
  9. DT_CALCRECT: рассчитывает высоту и ширину прямоугольника, необходимого для хранения текста.
  10. После рисования начального текста метод OffsetRect используется для смещения позиции прямоугольника, чтобы текст был центрирован в области Glyph.
  11. Наконец, DrawText вызывается снова с теми же параметрами, что и раньше, но без DT_CALCRECT, чтобы перерисовать текст на его новой позиции.

Таким образом, это позволяет создавать многострочный текст на контроле TBitBtn, который может быть трудно достичь с помощью стандартного свойства Caption.

В статье описывается способ вывода текста на кнопке TBitBtn в приложении Delphi с использованием процедуры FormCreate и функции DrawText.


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

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




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


:: Главная :: Кнопки ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-05-01 13:07:27/0.0048348903656006/1