Тема 4 Кнопки и индикаторы
Цель: Формирование знаний о свойствах, методах и событиях кнопок и индикаторов.
План:
1 Button – кнопка.
2 BitBtn – кнопка с пиктограммой.
3 SpeedButton – кнопка с пиктограммой и фиксацией.
4 CheckBox – индикатор.
1 Button – кнопка
Компоненты TButton широко используются для управления программами. Связанный с кнопкой алгоритм управления реализуется в обработчике события OnClick.
Свойства компонента Tbutton
Свойство | Описание |
property Cancel: Boolean; | Если имеет значение True, событие OnClick кнопки возникает при нажатии клавиши <Esc> |
property Default: Boolean; | Если имеет значение True, событие OnClick кнопки возникает при нажатии клавиши <Enter> |
type TModalResult = Low (Integer) . . High (Integer) ; property ModalResult: TModalResult; | Определяет результат, с которым было закрыто модальное окно |
В терминологии Windows модальными окнами называются такие специальные окна, которые, появившись на экране, блокируют работу пользователя с другими окнами вплоть до своего закрытия. Обычно с их помощью реализуется диалог, требующий от пользователя принятия некоторого решения Для этого в состав модального окна включается несколько кнопок. Если у кнопки определено свойство ModalResult, щелчок на ней приводит к закрытию модального окна и возвращению в программу значения ModalResult как результата диалога с пользователем. В Delphi определены следующие стандартные значения ModalResult: mrNone – модальное окно не закрывается; mrOk – была нажата кнопка ОК; mrСаnсеl – была нажата кнопка Cancel; mrAbort – была нажата кнопка Abort; mrRetry – была нажата кнопка Retry; mrIgnore – была нажата кнопка Ignore; mrYes – была нажата кнопка Yes; mrNo – была нажата кнопка No; mrAll – была нажата кнопка All.
В отличие от большинства других видимых компонентов кнопка TButton является элементом операционной системы Windows и поэтому не может изменять свой цвет произвольным образом – кнопка меняет его вместе с изменением палитры Windows. Кнопка всегда имеет системный цвет clBtnFace и не имеет свойства Color. Шрифт надписи на кнопке может менять свой стиль и размер, но компонент игнорирует изменение его цвета.
2 BitBtn – кнопка с пиктограммой
Графическая кнопка TBitBtn представляет собой популярную разновидность стандартной кнопки TButton. Ee отличительная особенность — свойство Glyph, с помощью которого определяется растровое изображение на поверхности кнопки. В комплект Delphi входит множество рисунков, разработанных специально для размещения на этих кнопках.
Свойство Kind определяет одну из 11 стандартих разновидностей кнопки.
Щелчок на любой из разновидностей кнопок, кроме кнопок bkcustom и bkHelp, закрывает модальное окно и возвращает в программу результат вида mrXXX (bkOk — mrOk, bkCancel — mrCancel и т. д.). Кнопка bkClose для модального окна возвращает значение mrCancel, a для главного окна программы — закрывает его и завершает работу программы. Кнопка bkHelp автоматически вызывает раздел справочной службы, связанный со свойством HelpContext формы, на которую кнопка помещена. Если у кнопки был изменен рисунок (свойство Glyph), Delphi автоматически присвоит свойству Kind кнопки значе ние bkCustom. Это произойдёт также в случае, когда кнопка указана как кнопка по умолчанию (Default=True), но при этом свойство Kind не содержит значение bkok или bkYes, и, кроме того, когда ее свойство Cancel содержит значение True, а свойство Kind не содержит значение bkcancel или bkNo.
Как и в кнопках TButton, программист не может управлять цветом поверхности кнопки, но, в отличие от Tbutton, может менять цвет надписи на ней. С помощью свойства Default кнопку можно сделать кнопкой, выбранной по умолчанию, — в этом случае нажатие клавиши <Enter> автоматически вызывает обработчик ее события Onclick. Однако кнопками, выбранными по умолчанию, можно сделать только кнопки bkYes и bkNo, остальные зна-чения свойства Kind будут заменяться на bkcustom при вводе в свойство Default значения True, и наоборот — в свойство Default автоматически помещается значение False при установке в свойстве Kind любого значения, кроме bkYes, bkNo или bkCustom.
3 SpeedButton – кнопка с пиктограммой и фиксацией
Кнопки TSpeedButton отличаются от кнопок TBitBtn тремя обстоятельства-ми: во-первых, они могут фиксироваться в утопленном состоянии, во-вторых, они не могут закрыть модальное окно, в третьих, они не могут быть кнопками, выбранными по умолчанию. Во всем остальном они повторяют свойства и методы кнопок TBitBtn.
Для фиксации кнопка должна быть отнесена к какой-либо группе кнопок (эта группа может состоять из неё одной — вариант одиночной фиксируемой кнопки). для этого используется свойство Grouplndex: Integer, которое не должно быть равно 0. Поведение кнопки определяется логическим свойством AllowAllup: если это свойство имеет значение True, утопленная кнопка отпускается при фиксации любой другой кнопки, входящей в ту же группу; если AllowAllUp=False, кнопку можно освободить только повторным щелчком. Индикатором состояния кнопки служит логическое свойство Down, которое имеет значение True, если кнопка утоплена. Свойство доступно для записи, что позволяет изменять состояние кнопки программно.
4 CheckBox – индикатор
Компонент TCheckBox используется для того, чтобы пользователь мог указать свое решение типа да/нет или да/нет/не уверен (в последнем случае флажок устанавливается, выглядит блеклым). Это решение отражается в свойстве state компонента, доступном как для чтения, так и для записи. В составе диалогового окна может быть несколько компонентов TCheckBox, : причем состояние любого из них никак не зависит от состояния остальных Типичное использование компонента:
if CheckBoxl.Checked then
…
else
…
Или:
case CheckBoxl.State of
cbChecked : ...;
cbUnchecked : ...;
cbGrayed : ...;
end;