Bitbtn как правильно называется



Компонент Delphi BitBtn это пиктографическая кнопка, представляющая собой один из вариантов стандартной кнопки Button. В отличие от последней кнопка Delphi BitBtn умеет отображать на своей поверхности не только надпись, но и изображение, которое задаётся свойством Glyph. В состав Delphi входит большое количество готовых изображений, которые можно размещать на кнопках Delphi BitBtn. В стандартном случае они располагаются по адресу C:\Program Files\Common Files\Borland Shared\Images\Buttons .

Свойство Kind компонента Delphi BitBtn определяет один из стандартных вариантов кнопки BitBtn:

Нажатие на любую из них (кроме кнопок со свойством BitBtn.Kind. равным bkCustom или bkHelp ) приводит к закрытию модального окна, в котором она установлена, а результат, возвращаемый в программу равен mrName (Name - Yes, Abort, Cancel и т.д. - название кнопки). Отличие есть у кнопки Close, её нажатие (после закрытия модального окна) приводит к возвращению не mrClose а mrCancel. а для главное окно программы просто закрывается, поэтому работа программы сразу завершается.
В случае если пиктограмма Glyph у кнопки Delphi BitBtn была изменена, система Delphi автоматически изменит и её значение BitBtn.Kind. которое станет равным bkCustom

Специфические свойства компонента - пиктографической кнопки Delphi BitBtn перечислены в таблице:

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

Определяет одну из разновидностей кнопки BitBtn (см. рисунок вверху).

Определяет к какому краю кнопки будет прижиматься пиктограмма:

  • blGlyphLeft - к левому;
  • blGlyphRight - к правому;
  • blGlyphBottom - к нижнему;
  • blGlyphTop - к верхнему.

Определяет расстояние в пикселах, на котором будет располагаться пиктограмма от края кнопки.

Определяет сколько растровых изображений размещается в файле, содержащем пиктограмму (* см. ниже).

Определяет расстояние в пикселах от рисунка до текста на кнопке.

Определяет как выглядит кнопка в зависимости от стиля предпочтительной операционной системы. Значение bsNew соответствует современным вариантам Windows. Стиль bsAutoDetect приводит оформление кнопки к стилю операционной системы, управляющей работой программы в настоящий момент.


Рисунок с изображениями для кнопки может состоять из нескольких (до 4-х) частей. Стандартная пиктограмма имеет размер 16х16 пикселов. Соответственно, если рисунок состоит из 2-х частей (для активного или неактивного состояния кнопки - именно такие изображения содержатся в стандартной поставке Delphi), то рисунок будет иметь размер 32х16. Количество пиктограмм задаётся свойством Glyph. Однако, если изображение состоит из нескольких квадратных пиктограмм одного размера, система Delphi сама распознает их количество.
Если в растре задана только одна пиктограмма, то Delphi сама может менять её изображение: в состоянии "нажата" изображение на кнопке смещается на 1 пиксель вниз-вправо, а в состоянии "недоступная" (Enabled=False ) все цвета, кроме чёрного, меняются на светло-серый, а чёрный - на белый, что создаёт эффект вдавленности.

BitBtn — кнопка с рисунком в Delphi

Кнопка с рисунком в Delphi представлена компонентом BitBtn. класс которой TBitBtn порожден непосредственно от класса TButton стандартной кнопки Button. Кнопка с рисунком отличается от стандартной кнопки тем, что помимо заголовка на ней можно отобразить растровое изображение. Видом и размещением изображения на поверхности кнопки BitBtn можно управлять с помощью свойств.

Свойство Glyph

Свойство Glyph типа TBitmap определяет растровый рисунок кнопки. По умолчанию свойство Glyph имеет значение None, т. е. кнопка не содержит рисунок. Рисунок может содержать до трех отдельных изображений (глифов). Какое именно изображение выводится на кнопке, зависит от ее текущего состояния:

  • первое изображение отображается, если кнопка не нажата (по умолчанию);
  • второе изображение отображается, если кнопка неактивна и не может быть выбрана;
  • третье изображение отображается, когда кнопка нажата (выполнен щелчок).

Панель для выбора ресунков (скриншот выше) вызываеться по нажатию на кнопку с тремя точками ввозле свойства Glyph (скриншот ниже).

При использовании нескольких изображений они должны быть подготовлены и сохранены в одном файле растрового формата BMP. Подготовить рисунок для кнопки можно в графическом редакторе. (например с помощью редактора Image Editor, входящего в состав Delphi или Adobe Photoshop). Все отдельные изображения в рисунке должны располагаться без промежутков в горизонтальной строке и иметь одинаковую высоту и ширину (как правило, 16×16 пикселов). По умолчанию левый нижний пиксел каждого рисунка определяет фоновый цвет рисунка. Обычно ему задают цвет поверхности кнопки (значение clBtnFace ), при этом все пикселы изображения, имеющие тот же цвет, будут не видны, т. е. являются прозрачными. По этой причине фоновый цвет также называют прозрачным. Если установить, например, желтый цвет фонового пиксела, то фон изображения тоже станет желтым.

Изменить режим отображения картинки в случае, когда фоновый цвет задается левым нижним пикселом рисунка, можно, установив значения его взаимосвязанных свойств TransparentColor и TransparentMode. Для восстановления режима отображения по умолчанию нужно установить свойство TransparentMode в значение tmAuto.

Используя рисунок с несколькими различными изображениями, можно при нажатии кнопки воспроизводить на ее поверхности простейшую анимацию. Для этого первое и третье изображения должны различаться не только цветом, но и видом и расположением фигур. Отметим, что для реализации более сложной анимации можно использовать компонент Animate. расположенный непосредственно на кнопке.

Cвойство NumGlyph

Количество изображений указывается в свойстве NumGlyph типа TNumGiyphs. По умолчанию свойство NumGlyph имеет значение 1, и на кнопке всегда отображается первое изображение.

Cвойство Kind

Delphi предлагает для кнопки BitBtn несколько предопределенных видов, выбираемых с помощью свойства Kind типа TBitBtnKind. При выборе какого-либо вида для кнопки на ней отображается соответствующий глиф. Для задания вида кнопки могут использоваться следующие константы:

  • bkCustom — на кнопке имеется выбранное изображение; первоначально изображение отсутствует, и его нужно загружать дополнительно;
  • bkOK — на кнопке имеются глиф «зеленая галочка» и текст ОК; свойство Default кнопки установлено в значение True, а свойство ModalResult — в значение mrOK;
  • bkCancel — на кнопке имеются глиф «красный знак х» и текст Cancel; свойство Cancel кнопки установлено в значение True, а свойство ModalResult— в значение
  • mrCancel;
  • bkYes — на кнопке имеются глиф «зеленая галочка» и текст Yes; свойство Default кнопки установлено в значение True, а свойство ModalResult — в значение mrYes;
  • bkNo — на кнопке имеются глиф «красная перечеркнутая окружность» и текст No; свойства Cancel кнопки установлено в значение True, а свойство ModalResult — в значение mrNO;
  • bkHelp — на кнопке имеются глиф «сине-зеленый вопросительный знак» и текст Help;
  • bkClose — на кнопке имеются глиф «дверь с обозначением выхода» и текст Close; при нажатии кнопки форма автоматически закрывается;
  • bkAbort — на кнопке имеются глиф «красный знак х» и текст Abort;
  • bkRetry — на кнопке имеются глиф «зеленая стрелка повтора операции» и текст Retry;
  • bkIgnore — на кнопке имеются глиф «игнорирование» и текст Ignore;
  • bkAll — на кнопке имеются глиф «двойная зеленая галочка» и текст Yes to All.

По умолчанию свойство Kind имеет значение bkCustom, и пользователь может сам выбирать изображение, управляя свойством. Не рекомендуется изменять свойство Glyph для предопределенных кнопок (например, для кнопки Close), т. к. в этом случае кнопка не будет выполнять закрепленные за ней действия (в данном случае закрытие окна).

Cвойство Layout

Расположением изображения на поверхности кнопки относительно текста управляет свойство Layout типа TButtonLayout, принимающее следующие значения:

  • blGlyphLeft (изображение слева от текста) — по умолчанию;
  • blGlyphRight (изображение справа от текста);
  • blGlyphTop (изображение над текстом);
  • blGlyphBottom (изображение под текстом).

Cвойство Margin

С помощью свойства Margin типа Integer можно управлять выравниванием глифа и текста относительно сторон кнопки. Это свойство задает расстояние в пикселах между стороной кнопки и изображением и по умолчанию имеет значение −1, что означает расположение глифа и текста по центру кнопки. Сторона, относительно которой производится выравнивание, определяется свойством Layout. Например, если значение Layout равно blGlyphLeft, то выравнивание выполняется по левой стороне кнопки.

На скриншоте показаны варианты выравнивания изображения и текста, соответствующие разным значениям свойства Margin.

Свойство Spacing

Свойство Spacing типа Integer определяет размер (в пикселах) промежутка, отделяющего глиф от текста. По умолчанию значение этого свойства равно 4 пикселам. Если значение этого свойства равно −1, то имеет место центрирование текста между краем глифа и дальней от него стороной кнопки.

На скриншоте показано использование различных значений свойства Spacing, отображенных в виде текста на кнопках.

2 комментария к “BitBtn — кнопка с рисунком в Delphi”

Оставить комментарий или два

Компонент Delphi BitBtn

Компонент Delphi BitBtn (кнопка с рисунком)
Компонент Delphi BitBtn (кнопка с рисунком) расположен на странице Additional Палитры Компонентов. Он является потомком класса Button - стандартной кнопки. Компонент BitBtn отличается от компонента Button тем, что на нем вместе с текстовой надписью можно отобразить растровый рисунок. Дизайн и расположение картинки определяется свойствами компонента.
Свойство Kind компонента Delphi BitBtn определяет один из стандартных вариантов кнопки BitBtn:

По умолчанию свойство Kind имеет значение bkCustom, и пользователь может сам выбирать изображение, управляя свойством. Не рекомендуется изменять свойство Glyph для предопределенных кнопок (например, для кнопки Close), т. к. в этом случае кнопка не будет выполнять закрепленные за ней действия (в данном случае закрытие окна

Специфические свойства компонента - пиктографической кнопки Delphi BitBtn перечислены в таблице:

Glyph: TBitmap Определяет рисунок, который может содержать от одного до четырёх изображений, связанных с состояниями, которые может принимать кнопка.
Kind Определяет одну из разновидностей кнопки BitBtn (см. рисунок вверху).
Layout Определяет к какому краю кнопки будет прижиматься пиктограмма:
• blGlyphLeft - к левому;
• blGlyphRight - к правому;
• blGlyphBottom - к нижнему;
• blGlyphTop - к верхнему.
Margin Определяет расстояние в пикселах, на котором будет располагаться пиктограмма от края кнопки.
NumGlyph Определяет сколько растровых изображений размещается в файле, содержащем пиктограмму (*см. ниже).
Spacing Определяет расстояние в пикселах от рисунка до текста на кнопке.
Style Определяет как выглядит кнопка в зависимости от стиля предпочтительной операционной системы. Значение bsNew соответствует современным вариантам Windows. СтильbsAutoDetect приводит оформление кнопки к стилю операционной системы, управляющей работой программы в настоящий момент.

За отображения растрового рисунка отвечает свойство Glyph. Свойство Glyph первоначально устанавливается со значением None и поэтому на кнопке нет рисунка. Кнопка может отображать до трех отдельных рисунков:
 внешний вид кнопки (когда кнопка не взаимодействует с пользователем) - это первое изображение,
 кнопка неактивна (ее нельзя выбрать и цвет ее серый) - вторая картинка,
 на кнопке сделан щелчок (кнопка нажата) - третья картинка.

При использовании нескольких изображений они должны быть подготовлены и сохранены в одном файле растрового формата BMP. Подготовить рисунок для кнопки можно в графическом редакторе. (например с помощью редактора Image Editor, входящего в состав Delphi или Adobe Photoshop). Все отдельные изображения в рисунке должны располагаться без промежутков в горизонтальной строке и иметь одинаковую высоту и ширину (как правило, 16×16 пикселов). По умолчанию левый нижний пиксел каждого рисунка определяет фоновый цвет рисунка. Обычно ему задают цвет поверхности кнопки (значение clBtnFace), при этом все пикселы изображения, имеющие тот же цвет, будут не видны, т. е. являются прозрачными. По этой причине фоновый цвет также называют прозрачным. Если установить, например, желтый цвет фонового пиксела, то фон изображения тоже станет желтым

Если изображений должно быть больше чем одно, то они должны находиться на одном рисунке в одном файле формата BMP. Давайте от откроем Image Editor - графический редактор, поставляемый совместно с пакетом Delphi

Теперь на форме расположим два компонента BitBtn. Для первой кнопки Caption будет - Пуск, для второй - Запретить. Свойство Glyph первой кнопки будет содержать наш рисунок. Обработчик первой кнопки можно оставить пустым, а для второй кнопки запишем следующее:
if (BitBtn1.Enabled = true) then
begin
BitBtn1.Enabled := false;
BitBtn2.Caption := 'Разрешить';
end else
begin
BitBtn1.Enabled := true;
BitBtn2.Caption := 'Запретить';
end;
Теперь запустим наши программу. Кнопка Пуск будет иметь рядом с собой рисунок - синию единицу, при нажатии на нее получим красную тройку. А если мы второй кнопкой заблокируем первую (присвоим свойству первой кнопки Enabled := False), то на первой кнопке рядом с заголовком появиться коричневая цифра 2.
Изменяя свойство Kind мы получим предопределенные Delphi виды кнопок. Можно применять следующие константы:
 bkCustom - изображение кнопки первоначально отсутствует и загружается самостоятельно (действует по умолчанию), реакция кнопки задается программистом



 bkOk - текст на кнопке Ok, ModalResult -mrOk;
 bkCancel - текст на кнопке Cancel; ModalResult - mrCancel, свойство Cancel - TRUE;
 bkYes - текст на кнопке Yes, свойство Default равно TRUE, ModalResult - mrYes;
 bkNo - текст на кнопке No, свойство Cancel - TRUE, ModalResult - mrNo;
 bkHelp - текст на кнопкеn Help;
 bkClose - текст на кнопке Close, закрывает форму;
 bkAbort - текст на кнопке Abort;
 bkRetry - текст на кнопке Retry;
 bkIgnore - текст на кнопке Ignore;
 bkAll - текст на кнопке Yes to All.
Зависимость расположения текста и картинки задается свойством Layout:
 blGlyphRight - картинка справа от текста;
 blGlyphLeft - картинка слева от текста;
 blGlyphBottom - картинка под текстом;
 blGlyphTop - картинка над текстом.
Расстояние (в пикселах) между текстом и картинкой задается в свойстве Spacing(по умолчанию 4 пиксела). При значении -1 текст будет центрирован относительно картинки и края кнопки.

За исключением того что компонент BitBtn позволяет использовать в названиях графические изображения, они ничем не отличаются от обычных кнопок (компонент типа Button).

Источники: http://www.delphi-manual.ru/bitbtn.php, http://delphi-faq.ru/palitra-komponentov-delphi/vizyalnie-biblioteki-vcl/bitbtn-knopka-s-risunkom-v-delphi.html, http://www.bzfar.net/publ/komponent_delphi_bitbtn/13-1-0-306




Комментариев пока нет!

Поделитесь своим мнением