Delphi. Кнопка BitBtn – кнопка с изображением.

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

Изменить цвет заголовка кнопки — свойство Caption.

Это можно сделать через свойство «Font.Color». Например, сделать надпись красной.

Вид кнопки.

Вид кнопки определяется свойством «Kind». Имеется следующий набор возможных вариантов:
bkCustom, bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose, bkAbort, bkRetry, bklgnore, bkAll.

В этих типах уже сделаны соответствующие надписи, введены пиктограммы, заданы еще некоторые свойства. Обычно все-таки лучше не пользоваться предопределёнными свойствами, так как это иногда приводит к странным результатам работы. Предпочтительно использовать кнопки с типом «bkCustom».

Надпись на кнопке.

Свойство Caption определяет надпись на кнопке.

Пусть «Caption=Открыть». Если написать «Caption=&Открыть», то на кнопке буква «О» окажется подчеркнутой.

Таким образом для кнопки задаётся «горячая клавиша». Теперь все равно – нажать ли на эту кнопку мышью, или нажать комбинацию клавиш «Alt + O».

Замечание. При этом раскладка должна быть на том языке, на котором сделана надпись. Также, если символ «О» набран в верхнем регистре, то «Alt + O» также надо набирать в верхнем регистре.

Уточним – символ «&» перед буквой задает горячую клавишу. Его можно поставить перед любой буквой слова, то есть не обязательно перед первой.

Например, в нашем случае это лучше сделать следующим образом:

«Caption=О&ткрыть». Тогда кнопка будет срабатывать при нажатии «Alt+т».

Если разместить компонент «Panel» (откуда взялась стрелка на кнопке — разберём позднее)

и написать код:

procedure TForm1.BitBtn4Click(Sender: Tobject);
begin
if Panel1.Visible = false then Panel1.Visible:=true
else Panel1.Visible:=false;
end;

то панель попеременно будет невидимой/видимой при каждом щелчке по кнопке или нажатии «Alt+т» (то есть код работает как переключатель).

Свойство Cancel.

По умолчанию оно равно «False». Если же его установить в «True», нажатие кнопки «Esc» будет выполнять то же действие, что и само нажатие на эту кнопку. Это свойство желательно изменять для кнопок «Отменить» в разных диалоговых окнах.

Свойство Default.

Если его установить в True, то кнопка становится главной. При нажатии на «Enter», это будет эквивалентно нажатию на данную кнопку, даже если в этот момент в фокусе находится какой-то оконный компонент.

Исключение – если в этот момент в фокусе будет другая кнопка, то нажатие на «Enter» вызовет все же обработчик события той кнопки, что была в фокусе.

Свойство ModalResult.

Это свойство иногда используется в модальных формах. По умолчанию оно равно «mrNone», то есть, ничего.

Однако вы можете выбрать любое значение из списка. Предположим, в модальной форме вы установили три кнопки: «Да», «Нет» и «Отмена». Тогда в свойстве «ModalResult»этих кнопок вы можете установить значения «mrYes», «mrNo»и «mrCancel».

При этом обработчик события для этих кнопок создавать не нужно – нажатие на любую кнопку закроет форму. При этом, в момент закрытия модальной формы, свойству «ModalResult»этой формы запишется значение «ModalResult» той кнопки, которая закрыла форму.

 Свойство Glyph. 

Это свойство типа «TBitmap», позволяющее привязать растровое изображение к кнопке.

Выводимый рисунок может содержать до трех отдельных изображений. Какое именно изображение из трех выводится, зависит от текущего состояния кнопки:

1–е изображение отображается, если кнопка не нажата (по умолчанию);

2-е изображение отображается тогда, когда кнопка не активна (свойство «Enabled=false») и не может быть выбрана;

3-е изображение отображается в том случае, если кнопка нажата (выполнен щелчок).

Замечание. Для особой кнопки с фиксацией добавляется ещё четвёртое изображение.

Число пиктограмм отображается в значении свойства «NumGlyphs».

Итак, изображение на кнопке установливается с помощью свойства Glyph.

(Изображение может, например, быть загружено из файла, поставляемого с Dephi и находящегося в \ program files \ common files \ borland shared \ Images \ Buttons.)

Но мы создадим bitmap матрицу размером 48*16 самостоятельно в графическом редакторе. Она будет состоять из трех примыкающих друг к другу матриц 16*16.

Замечание. В случае одинаковых размеров матриц значение «NumGlyphs» определяется автоматически.

Создадим следующее изображение:

Загрузим его с помощью свойства «Glyph». Тогда кнопка приобретёт вид:

Если свойство кнопки «Enabled=False», то вид кнопки изменится на:

И, наконец, при щелчке по кнопке изображение станет:

Расположение изображения и надписи.

Положение изображения на поверхности кнопки определяются свойствами Margin, Layout и Spacing.

Если свойство Margin равно «-1» (значение по умолчанию), то изображение вместе с надписью размещаются в центре кнопки. Приэтом значение «Layout» определяет, где по отношению к надписи будет располагаться изображение — слева, справа, сверху или снизу..

Если же, например, Margin=5 и Layout=blGlyphLeft, то расположение изображения и кнопки координируются от левого края.

Если Layout=blGlyphRight и Margin=20, то расположение изображения и кнопки координируются от правого края:

Анологично для других значений «Layout».

Свойство Spacing задает число пикселов, разделяющих изображение и надпись на поверхности кнопки. По умолчанию «Spacing = 4.» Если задать «Spacing = 0», изображение и надпись будут размещены вплотную друг к другу. Если задать «Spacing = -1», то текст появится посередине между изображением и краем кнопки.

***

Обновлено: 25.07.2021 — 14:34

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *