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

Как и в предыдущей лабораторной работе, вначале необходимо создать отдельную папку для сохранения всех файлов данной работы, например, Lab2. Затем, после запуска Delphi и создания нового проекта необходимо сохранить в созданную папку главный модуль под именем Main Unit.pas (вместо предлагаемого Delphi имени Unit 1.pas), а проект под именем Lab2.dpr (вместо Projectl.dpr). После этого можно начинать заполнять главную форму необходимыми компонентами в соответствии с рис. 6. В табл. 2 кратко приведен список свойств различных компонентов главной формы, требующих установок.

Таблица 2. Значения основных устанавливаемых свойств компонентов главной формы
Свойство Значение Комментарий
MainForm: TMainForm
Name MainForm Имя переменной для ссылки на форму
Caption Калькулятор Заголовок формы
BorderStyle bsDialog Запрещается растяжение формы
Label1: TLabel
Caption 1-е число: Комментарий к 1-му введенному числу
Label2: TLabel
Caption 2-е число: Комментарий ко 2-му введенному числу
Label3: TLabel
Caption Сумма: Комментарий к выводимому значению
Label4: TLabel
Caption Произведение: Комментарий к выводимому значению
LabelSum: TLabel
Caption   Значение суммы по умолчанию
LabelProduct: TLabel
Caption   Значение произведения по умолчанию
Buttonlnput: TButton
Caption Ввод чисел... Текст на кнопке
ButtonExit: TButton
Caption Выход Текст на кнопке
Cancel True Указывается, что нажатие клавиши Esc в любом месте формы трактовалось как нажатие на эту кнрпку

Теперь создадим вторую (вспомогательную) форму для ввода двух чисел. Для этого необходимо выбрать в меню команду File|New Form. В результате будет создана новая форма с соответствующим программным модулем. Модуль необходимо сохранить (командой File|Save) в рабочем каталоге Lab2 в файл Input.pas.

Таблица 3. Значения основных устанавливаемых свойств компонентов второй формы
Свойство Значение Комментарий
InputForm: TInputForm
Name InputForm Имя переменной для ссылки на форму
Caption Ввод чисел Заголовок формы
BorderStyle bsDialog Запрещается растяжение формы
Labell: TLabel
Caption 1-е число: Приглашение для ввода 1-го числа
Label2: TLabel
Caption 2-е число: Приглашение для ввода 2-го числа
Edit1, Edit2: TEdit
Text   Вводимые значения по умолчанию
ButtonOk: TButton
Caption Ввод чисел... Текст на кнопке
Default True Указывается, что нажатие клавиши Enter в любом месте формы, кроме кнопок, трактуется как нажатие на эту кнопку
ButtonCancel: TButton
Caption Выход Текст на кнопке
Cancel True Указывается, что нажатие клавиши Esc в любом месте формы трактуется как нажатие на эту кнопку
ModalResult mrCancel Указывается, что при нажатии на эту кнопку форма закрывается с возвратом указанного значения в одноименном свойстве формы ModaiResult

Теперь можно заполнить созданную вспомогательную форму необходимыми компонентами в соответствии с рис. 7. В табл. 3 кратко приведен список свойств различных компонентов формы, требующих установок.

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

В Delphi вспомогательные окна можно выводить на экран в двух режимах с помощью методов формы Show и ShowModal соответственно.

1. Метод Show открывает «немодальное» окно, которое появляется на экране и работает одновременно с вызвавшим его окном. Управление программой передается оператору, стоящему за оператором вызова метода Show. Этот режим обычно не используется для ведения диалога с пользователем. Примером такого рода окон являются окна Редактора кода и Инспектора объектов в Delphi.

Замечание

Вывод диалоговых окон (модальных форм) на экран удобен, если они появляются по центру экрана. Для этого необходимо установить значение свойства Position формы равным psScreenCenter.

2. Метод ShowModal открывает «модальное диалоговое» окно, которое полностью берет на себя дальнейшее управление программой. Модальные окна требуют от пользователя принятия какого-то решения. Для тoro чтобы пользователь мог сообщить о принятом решении, в модальное окно вставляются необходимые интерфейсные элементы. Чаще всего это стандартные кнопки (с надписями «ОК», «Отмена», «Да», «Нет»), которые автоматически выполняют действия закрытия модального окна и помещения значения результата диалога (информации о нажатой кнопке) в свойство формы ModalResult. Свойство ModalResulz может иметь значения mrNone, mrOk, mrCancel, mrYes, mrNo и другие. Вызывающая программа получает это значение после выполнения метода ShowModal и может анализировать его для определения нужного направления своей дальнейшей работы.

Нам необходимо создать обработчик событий в ответ на нажатие кнопки ButtonInput («Ввод чисел...») главной формы, который бы вызывал вспомогательную форму в модальном режиме (листинг 3). Для этого прежле всего следует указать, что вспомогательный МОДУЛЬ Input.pas будет использоваться в главном модуле MainUnit.pas. Необходимо открыть модуль MainUnit.pas, выбрать команду меню File|Use Unit... и указать в диалоге модуль Input.pas. Это приведет к тому, что в главном модуле в секции implementation появится строка «uses Input;».

Главным в создаваемом обработчике является метод ShowModal формы InputForm, который останавливает выполнение основной программы и передает управление вспомогательной форме. В зависимости от результата выполнения метода ShowModal (нужно выполнить проверку на равенство результата значению mrOk) необходимо выполнить действия по вычислению суммы и произведения чисел и вывести полученные значения в соответствующих метках главной формы.

Во вспомогательной форме необходимо написать обработчик событий для кнопки Buttor.Ok («OK»), ко торый должен проверить правильность введения чисел и, если все верно, то закрыть форму с результатом mrOk. Для второй кнопки BuLtonCancel («Отмена») обработчик писать не нужно, т.к. у этой кнопки уже выставлено свойство ModalResult, говорящее о том, что форма должна быть закрыта при нажатии на эту кнопку.

Теперь программу можно выполнять. На рис. 8-9 приведён внешний вид разработанного приложения.

В листингах 2-4 приведены тексты файла проекта и обоих модулей.


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



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