Материал: Мансуров. Основы программирования в среде Lazarus. 2010

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

ких-либо действий, команд и процедур. В палитре компонентов имеются две разновидности кнопок. На странице Standard имеется компонент TButton,

а на странице Additional компонент TBitBtn.

Рассмотрим свойства, присущие только кнопке. Такие его свойства, как

Name, Left, Top, Height, Width, Font, Visible и др. имеют тот же смысл,

что и для рассмотренного ранее компонента TLabel.

Caption – текст, отображаемый на кнопке.

Enabled – признак доступности кнопки. По умолчанию имеет значение

True, то есть кнопка доступна. Если False, то кнопка в данный момент не-

доступна. Надпись на кнопке имеет блеклый вид, нажатие на кнопку не приво-

дит ни к каким действиям, даже если имеется обработчик события OnClick.

Default – если установлено значение True, то нажатие клавиши Enter

будет эквивалентно щелчку по кнопке мышью.

Cancel – если установлено значение True, то нажатие клавиши Esc бу-

дет эквивалентно щелчку по кнопке мышью.

Компонент TBitBtn отличается от TButton тем, что на нем можно ото-

бражать пиктограммы. Перечисленные выше свойства для TButton имеют ме-

сто и для TBitBtn. Кроме этого, этот компонент имеет и свои особые свойст-

ва.

Kind – задает тип кнопки. Имеются несколько предопределенных типов кнопки с готовой пиктограммой и текстом:

bkAbort – с текстом "Прервать".

bkAll – с текстом "Все".

bkCancel – с текстом "Отмена".

bkClose – с текстом "Закрыть".

bkCustom – произвольный текст, устанавливается программистом.

bkHelp – с текстом "Справка".

bkIgnore – с текстом "Пропуск".

501

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

bkNo – с текстом "Нет".

bkNoToAll – с текстом "Нет для всех".

bkOK – с текстом "ОК".

bkRetry – с текстом "Повтор".

bkYes – с текстом "Да".

bkYesToAll – с текстом "Да для Всех".

Glyph – если вас не устраивают предлагаемые рисунки, вы можете выбрать другие. Будет открыто диалоговое окно, необходимо указать путь к этому ри-

сунку.

Margin – задает расстояние от края кнопки до рисунка (в пикселах). По умолчанию -1. В этом случае рисунок и текст располагаются в центре.

Layout – определяет положение рисунка на кнопке. Можно выбрать:

blGlyphLeft – слева.

blGlyphRight – справа.

blGlyphBottom – снизу.

blGlyphTop – сверху.

Spacing – задает расстояние в пикселах между рисунком и текстом кноп-

ки.

Рассмотрим пример. Положите на пустую форму две кнопки TButton и

одну TBitBtn. Для кнопки Button1 установите свойство

Caption="Показать кнопку", для кнопки Button2 установите свойство Caption="Сделать доступной". Для кнопки BitBtn1 установите свойство

Kind= bkClose, Enabled= False, Visible= False, рис. 6.28.

502

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

Рис. 6.28. Форма приложения

В обработчик события OnClick для Button1 введите код:

procedure TForm1.Button1Click(Sender: TObject);

begin

BitBtn1.Visible:= true;

end;

В обработчик события OnClick для Button2 введите код:

procedure TForm1.Button2Click(Sender: TObject);

begin

BitBtn1.Enabled:= true;

end;

Откомпилируйте и запустите приложение. Вы видите, что кнопка

BitBtn1 сразу после запуска не видна. Нажмите на кнопку "Показать кнопку". Кнопка BitBtn1 станет видна, но будет недоступна. Теперь на-

жмите на кнопку " Сделать доступной". Кнопка BitBtn1 станет доступ-

на. Закройте с ее помощью приложение.

Кнопки TSpeedButton (она находится на странице Additional)

обычно используются в качестве быстрых кнопок в панелях инструментов. На

503

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

них также можно поместить некоторое изображение. Разумеется, их можно ис-

пользовать и как обычные кнопки. Отличительной особенностью этих кнопок является возможность фиксации нажатого состояния. Для этого используются свойства GroupIndex и AllowAllUp.

По умолчанию свойство GroupIndex имеет значение 0. В этом случае кнопка ведет себя как обычная кнопка. Если значение GroupIndex > 0, то при нажатии на кнопку она останется в нажатом состоянии. Если свойству

AllowAllUp присвоить значение = true, то при повторном нажатии на кнопку она возвратится в нормальное состояние.

Если присвоить свойствам GroupIndex нескольких кнопок одинаковое значение > 0, то при нажатии следующей кнопки она останется в нажатом состоянии, а предыдущая кнопка вернется в обычное отжатое состояние (свой-

ство AllowAllUp должно иметь значение = true для всех этих кнопок).

Узнать в каком состоянии находится кнопка (нажатом или отжатом) можно по свойству Down. Если Down = true, то кнопка в нажатом состоянии.

6.3.6 Организация ввода данных. Однострочные редакторы TEdit, TLa-

beledEdit

Любая программа в своей работе использует какие-то исходные данные.

Чаще всего эти данные вводятся пользователем с клавиатуры.

Для организации ввода используются компоненты TEdit, TLabeledEdit и др. Сигналом завершения ввода и начала обработки вве-

денных данных служит обычно нажатие пользователем кнопки. Для заверше-

ния ввода также часто используется клавиша Enter.

6.3.6.1. Компонент TEdit

С помощью этого компонента можно вводить и редактировать некоторый

504

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

текст. Этот компонент носит также название однострочный редактор.

Text – вводимое значение содержится в этом свойстве в виде строки сим-

волов. По умолчанию содержит строку "Edit1".

AutoSelect – если установлено значение True, то при передаче фокуса на компонент, весь текст в поле редактирования будет выделен.

ReadOnly – если установлено значение True, то текст в поле редактиро-

вания доступен только для чтения, при этом сохраняется возможность копиро-

вания текста в буфер обмена.

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

Перенесите на форму компонент TEdit, очистите свойство Text. Также нам понадобятся кнопка и надпись. Расположите их на форме так, как показано на рисунке 6.29, соответственно изменив свойства Caption формы, надписи и кнопки.

Рис. 6.29. Форма приложения

В редакторе исходного кода в обработчик события OnCreate формы введите следующий код:

procedure TForm1.FormCreate(Sender: TObject);

begin

passw:= '1234';

505

Смотрите также:

11 Горм +
113
14
1433
1511
1632
199
204
2N4264RE
3773