Таблица 1 Свойства компонента Button (стандартная кнопка)

ТЕМА  «Работа с кнопками»

 

План:

1. Стандартная кнопка

2. Кнопка с изображением

3. Кнопка с фиксацией и изображением

Кнопка представляет собой интерфейсный элемент управления, предназначенный для запуска определенных команд.

Система Delphi предлагает несколько компонентов, представляющих собой различные варианты кнопок:

· Button – стандартная кнопка;

· BitBtn – кнопка с изображением;

· SpeedButton – кнопка с фиксацией и изображением.

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

Кнопка отображается на форме в виде выпуклого прямоугольника, щелчок мыши на котором приводит к генерации события OnClick.

Стандартная кнопка

Стандартная кнопка, или просто кнопка, представлена в Delphi компонентом Button, который является оконным элементом управления, расположенным на странице библиотеки Standard (Стандартные).

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

Свойства компонента Button приведены в таблице 1

Таблица 1 Свойства компонента Button (стандартная кнопка)

Свойство Описание
Name Имя компонента. Используется в программе для доступа к компоненту и его свойствам
Caption Текст на кнопке
Left Расстояние от левой границы кнопки до левой границы формы
Тор Расстояние от верхней границы кнопки до верхней границы формы
Height Высота кнопки
Width Ширина кнопки
Enabled Признак доступности кнопки. Если значение свойства равно True, то кнопка доступна. Если значение свойст­ва равно False, то кнопка не доступна.
Visible Позволяет скрыть кнопку (False) или сделать ее ви­димой (True)
Hint Подсказка – текст, который появляется рядом с указателем мыши при позиционировании указателя на ко­мандной кнопке (для того чтобы текст появился, надо чтобы значение свойства ShowHint было True)
ShowHint Разрешает (True) или запрещает (False) отображение подсказки при позиционировании указателя на кнопке
ModalResult Cancel определяет результат, с которым было закрыто модальное окно значение True этого свойства связывает нажатие клавиши Esc с обработчиком события OnClick
Default значение True этого свойства связывает нажатие клавиши Enter с обработчиком события OnClick

При применении кнопки для закрытия окна можно использовать ее свойство ModalResult типа TModalResult. Оно определяет, какое значение будет содержать одноименное свойство ModalResult формы, когда окно закрывается при нажатии соответствующей кнопки. Обычно свойство ModalResult применяется для закрытия модальных окон, и его возможными значениями являются целые числа, некоторые из них объявлены как именованные константы:  

· mrNone (число 0);

· mrOk, имеет значение idok (число 1);

· mrCancel, имеет значение idCancel (число 2);

· mrAbort, имеет значение idAbort (число 3);

· mrRetry, имеет значение idRetry (число 4);

· mrIgnore, имеет значение idIgnore (число 5);

· mrYes, имеет значение idYes (число 6);

· mrNo, имеет значение idNo (число 7);

· mrAll, имеет значение mrNo + 1;

· mrNoToAll, имеет значение mrAll + 1;

· mrYesToAll – mrNoToAll + 1.

Если свойство ModalResult кнопки установлено в ненулевое значение, отличное от mrNone (по умолчанию), то при нажатии кнопки модальная форма закрывается автоматически, поэтому нет необходимости вызывать метод Close в обработчике события OnClick этой кнопки, и свойству формы ModalResult будет автоматически присвоено соответствующее значение. Итак, щелчок на кнопке, у которой определено свойство ModalResult, приводит к закрытию модального окна и возвращению в программу значения ModalResult как результат диалога с пользователем: mrNone – модальное окно не закрывается, mrOk – была нажата кнопка Ok; mrCancel – была нажата кнопка Cancel; mrAbort – была нажата кнопка Abort; mrRetry – была нажата кнопка Retry; mrIgnore – была нажата кнопка Ignore; mrYes – была нажата кнопкаYes; mrNo – была нажата кнопка No; mrAll – была нажата кнопка All.

Рассмотрим следующий обработчик события OnClick кнопки:

procedure TForm2.Button1Click(Sender: TObject);

begin

Form1.Close;

Form1.ModalResult:= mrOk;

end;

Его можно заменить таким обработчиком:

procedure TForm1.FormCreate(Sender: TObject);

begin

Button1.ModalResult:= mrOk;

end;

Обычно требуемые значения свойства ModalResult для кнопок устанавливаются при проектировании формы с помощью Инспектора объектов. Однако их можно задать и при выполнении приложения, что может понадобиться, если необ­ходимо запретить закрытие диалоговой формы, например, при наличии несохраненных редактируемых данных:

procedure TForm2.ClickMemo(Sender: TObject);

begin

if Memo1.Modified then Button3.ModalResult:= mrNone

                             else Button3.ModalResult:= mrOK

end;

В отличие от большинства других видимых компонентов кнопка TButton является элементом операционной системы Windows и поэтому не может изменять свой цвет произвольным образом – кнопка меняет его вместе с изменением палитры Windows. Кнопка всегда имеет цвет clBtnFace и не имеет свойства Color. Шрифт надписи на кнопке может менять свой стиль и размер, но компонент игнорирует изменение его цвета.

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

Кнопку можно нажать следующими способами:

· щелчком мыши;

· выбором комбинации клавиш, если она задана в свойстве Caption;

Для того чтобы событие OnClick генерировалось при нажатии комбинации клавиш, необходимо выделить для этого один из символов надписи. Перед символом, который должен со­ответствовать клавише ускоренного доступа, ставится символ «&». Этот символ не появляется в надписи, а следую­щий за ним символ оказывается подчеркнутым. Тогда пользова­тель может вместо щелчка на кнопке нажать в любой момент клавишу Alt  совместно с клавишей выделенного символа. Например, если в вашем приложении имеется кнопка выполнения какой-то операции, вы можете задать ее свойство Caption равным «&Выполнить». На кнопке эта надпись будет иметь вид «В ыполнить». И если пользователь нажмет комбинацию клавиш Alt+B, то это будет эквивалентно щелчку на кнопке.

· нажатием клавиш Enter или пробел;

На нажатие клавиш Enter или пробел реагирует кнопка по умолчанию, т.е. находящаяся в фокусе кнопка, заголовок которой выделен пунктирным прямоугольником. Если фокус ввода получает некнопочный элемент управления, например Edit, то кнопкой по умолчанию становится та, у которой свойство Default типа Boolean установлено в значение True. В этом случае кнопка по умолчанию выделяется черным прямоугольником. При размещении в процессе конструирования приложения кнопок в форме (или в другом контейнере, например, Panel) это свойство имеет значение False, т.е. выбранных кнопок нет. Если свойство Default программно установить в значение True для двух и более кнопок, это не приведет к ошибке, но кнопкой по умолчанию будет являться первая кнопка по порядку обхода при табуляции.

· нажатием клавиши Esc.

Чтобы кнопка реагировала на нажатие клавиши Esc, необходимо ее свойство Cancel типа Boolean установить в значение True. При установке значения True для свойств Cancel двух и более кнопок кнопкой отмены считается первая по порядку обхода табуляции. По умолчанию значение Cancel равно False, и никакая кнопка не реагирует на нажатие клавиши Esc.

Из методов, присущих кнопкам, имеет смысл отметить один – Click. Выполнение этого метода эквивалентно щелчку на кнопке, т.е. вызывает событие кнопки OnClick. Этим можно воспользоваться, чтобы продублировать какими-то другими действиями пользователя щелчок на кнопке. Пусть, например, вы хотите, чтобы при нажатии пользователем клавиши с символом «С» или «с» в любой момент работы с приложением выполнялись операции, предусмотренные в обработчике события OnClick кнопки Button1. Поскольку неизвестно, какой компонент будет находиться в фокусе в момент этого события, надо перехватить его на уровне формы. Такой перехват осуществляется, если установить свойство KeyPreview в True. Тогда в обработчике события формы onKeyPress можно написать оператор

if (кеу = ‘C’ or key = 'c `') then Button1.Click;

Если пользователь ввел символ «С» или «с», то в результате будет выполнен обработчик щелчка кнопки Button1.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: