Вы получили первое представление об окнах диалога, научились создавать и выполнять простейшие из них. Но вы еще не знаете, как организовать диалог для получения данных от пользователя. Эта задача решается с помощью компонентов для ввода данных, к изучению которых мы сейчас приступаем.
Использование компонентов для ввода данных рассмотрим на примере приложения Alarms. Эта полезная программа позволит создать список будильников для уведомления о предстоящих событиях. По сигналу будильника в заданные время и день появится окно с сообщением и прозвучит сигнал. Список будильников будет отображаться в главном окне программы, а установка их параметров будет выполняться в модальном окне диалога. В процессе разработки этого приложения вы познакомитесь с такими компонентами, как CheckBox, RadioButton, ComboBox, ListBox, GroupBox, Edit, MaskEdit и некоторыми другими. Итак, приступим.
Шаг 1. Сначала приготовьте новый проект с пустой формой, выбрав команду меню File | New Application. Дайте форме идентификатор MainForm, скорректируйте ее размеры и установите следующие значения свойств:
- Caption = Clock Alarms
- BorderIcons = [biSystemMenu,biMinimize]
- BorderStyle = bsSingle
- Position = poDefaultPosOnly
Сохраните модуль формы под именем MainUnit.pas, а проект - под именем Alarms.dpr.
Шаг 2. В форме MainForm будет отображаться список будильников. Для управления списком нужны кнопки: New, Edit и Delete. Для быстрого и удобного закрытия формы нужна еще кнопка Close. Поэтому поместите в форму соответствующее число компонентов Button (с идентификаторами NewButton, EditButton, DeleteButton, CloseButton) и задайте для них надписи, размеры и положение как на рисунке 9.19.
Рисунок 9.19. Кнопки для управления списком будильников
Шаг 3. Установите в компоненте NewButton свойство Default в значение True, чтобы кнопка срабатывала при нажатии клавиши Enter.
Шаг 4. Для компонента CloseButton создайте следующий обработчик события OnClick:
procedure TMainForm.CloseButtonClick(Sender: TObject); begin Close; end; |
Шаг 5. Необходимые подготовительные операции сделаны. Теперь перейдем к разработке окна диалога, предназначенного для ввода параметров будильника. Это окно будет вызываться при нажатии кнопок New и Edit. С этой целью добавьте в проект новую форму, дайте ей идентификатор AlarmDetailsForm, скорректируйте размеры и установите следующие значения свойств:
- Caption = Alarm Details
- BorderStyle = bsDialog
- Position = poScreenCenter
Теперь сохраните модуль формы под именем AlarmDetailsUnit.pas.
Шаг 6. Добавьте в форму кнопки OK и Cancel и установите их свойства так, как показано на рисунке 9.20.
Рисунок 9.20. Стандартные кнопки OK и Cancel и их свойства
Шаг 7. Теперь займемся размещением компонентов для ввода данных. Прежде всего подумаем, какие параметры должны устанавливаться в диалоге. К ним относятся: текстовое сообщение, которое появится по сигналу будильника, время сигнала с точностью до минуты, признак того, нужно ли проигрывать звуковой сигнал, периодичность выдачи сигналов (ежедневно, в заданный день недели или в конкретный день). Учли все? Вроде бы, да. Тогда разместите в форме компоненты, обеспечивающие ввод перечисленных параметров (рисунок 9.21).
Рисунок 9.21. Эскиз окна для установки параметров будильника
Эскиз окна диалога создан (с помощью выносок на рисунке пояснены названия компонентов). Окинув его взором, вы обнаружите, что знакомых вам компонентов немного - это Bevel, Label и Button. Зато новых - хоть отбавляй: CheckBox, RadioButton, Edit, MaskEdit, GroupBox, ComboBox, DateTimePicker. Однако не пугайтесь, мы обо всех расскажем, и вы убедитесь, что обращаться с ними вовсе не сложно.


