Страница 3 из 59 Компонент TBitBtn TObject—”TPersistent—>TComponent->TControl—>TWinControl—” •”TButtonControl—>-TButton->TBitBtn Модуль BUTTONS Страница Палитры компонентов Additional Эта кнопка, будучи потомком TButton, может нести на себе пиктограмму и имеет рад дополнительных удобств в использовании. В Delphi уже определены стандартные виды кнопок: (Pb) property Kind: TBitBtnKind; TBitBtnKind = (bkCustom, bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose, bkAbort, bkRetry, bklgnore, bkAll) ; Для каждой из них определены: передаваемый форме результат (ModalResult): BitBtnModalResults: array[TBitBtnKind] of TModalResult= ( 0, mrOk, mrCancel, 0, mrYes, mrNo, 0, mrAbort, mrRetry, mrlgnore, inrAll); а также название и картинки для разных состояний. Достаточно установить значение свойства Kind, и кнопка сразу приобретет нужный вид. Более того, некоторые из видов кнопок при нажатии сразу совершают определенные действия. Так, bkHelp осуществляет инициализацию системы помощи со своим (или ближайшим ненулевым родительским) контекстом. Кнопка вида bkClose закрывает форму, которой она принадлежит, вызывая ее метод Close. Кнопка будет отнесена к виду bkCustom, если она: • назначена Default, но при этом не принадлежит множеству [bkOk, bkYes]; • назначена Cancel, но не принадлежит множеству [bkCancel, bkNo]; • у нее изменена пиктограмма; • модальный результат не соответствует определенному для этого вида кнопок. За внешний вид этой кнопки отвечают свойства, рассмотренные ниже. Стиль изображения кнопок в зависимости от операционной системы задается свойством: (Pi-) property Style: TButtonStyle; TButtonStyle = (bsAutoDetect, bsWin31, bsNew); Стиль bsNew соответствует Windows 95. В любом случае корректным будет применение стиля bsAutoDetect, который сам распознает версию системы. Пиктограмма кнопки, которая вместе с текстом видна на ее поверхности, определяется свойством: (Pb) property Glyph: TBitmap; Для создания эффекта нажатия картинка должна немного изменяться в зависимости от состояния; кроме того, отдельная картинка нужна для неактивного состояния (когда нажатие не воспринимается). В свойстве Glyph должна быть одна битовая карта, но она может содержать картинки сразу для нескольких состояний кнопки (максимум четыре). Они интерпретируются как соответствующие нормальному (отжатому), запрещенному (неактивному), нажатому и утопленному состояниям (последнее применяется только для кнопок TSpeedButton). Для этого картинки должны быть расположены подряд вплотную по горизонтали. Например, при размере картинок 16х16 нужна объединенная битовая карта 64х16. Если каждая из картинок квадратная и ширина общей картинки нацело делится на высоту, то при присвоении ее свойству Glyph система сможет распознать их и скорректировать количество, определяемое свойством: (pb) property NumGlyphs: TNumGlyphs ; TNumGlyphs = 1..4; При отрисовке в зависимости от состояния из большой битовой карты будет использована нужная часть. Три свойства отвечают за расположение текста и картинки на поверхности кнопки: (Pb) property Layout: TButtonLayout; Способ выравнивания пиктограммы относительно краев кнопки. Может быть одним из четырех: TButtonLayout = (biGlyphLeft, biGlyphRight, biGlyphTop, biGlyphBottom) ; Расстояние от соответствующего способу выравнивания края кнопки до пиктограммы описывается свойством: (Pb) property Margin: Integer; Промежуток между пиктограммой и текстом равен: (Pb) property Spacing: Integer; Если свойства Margin, Spacing или оба не заданы (по умолчанию равны -1), значения этих промежутков выбираются системой. Кнопка также имеет метод Click и свойства Caption, ModalResult, Default и Cancel. Статус Default получают кнопки видов bkOk, bkYes, a Cancel — кнопки видов bkCancel, bkNo. |