Тема 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;