Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конструирование программ.doc
Скачиваний:
12
Добавлен:
05.05.2019
Размер:
12.37 Mб
Скачать

5.2.3 Реализация методов

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

Методы, автоматически добавляемые Delphi в приложение, первоначально имеют следующую структуру (на примере обработчика события OnActivate):

procedure TFormCalc.OnCalcActivate(Sender: TObject);

begin

end;

Шаг 1. Активизация приложения. Метод OnCalcActivate

При запуске приложения Калькулятор необходимо:

  • очистить поля ввода и поле результата

  • знак операции и знак = должны иметь начальное значение ?

  • установить курсор в поле первого операнда для ввода числа.

Код метода OnCalcActivate:

procedure TFormCalc.OnCalcActivate(Sender: TObject);

begin

EditOperand1.Text :='' ; // Свойство Text – пустая строка

EditOperand2.Text :='' ;

EditResult.Text :='' ;

OperatorLabel.Caption:='?';// Свойство Caption – символ ?

ResultLabel.Caption :='?';

EditOperand1.SetFocus; // Установить фокус (курсор) в поле первого

// операнда – EditOperand1

end;

Шаг 2. Ввод данных. Метод Operand1KeyPress

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

На примере ввода первого числа рассмотрим, как можно обрабатывать событие Нажатие клавиши (OnKeyPress).

Метод обработки этого события получает кроме значения параметра Sender(источник вызова метода) еще и код нажатой клавиши – параметр Key.

Код метода Operand1KeyPress:

procedure TFormCalc.Operand1KeyPress(Sender: TObject;

var Key: Char);

begin

case Key of

'0'..'9', chr(8): ; // можно ввести числа 0..9 и удалить предыдущий

// символ ( chr(8) – клавиша Backspace)

chr(13) : EditOperand2.SetFocus;// Если нажата клавиша ENTER

// установить курсор в поле

// второго операнда

else

key:=chr(0); // не обрабатывать нажатие других клавиш

end;

end;

Шаг 3. Вычисления

Код метода BtnAddClick:

procedure TFormCalc.BtnAddClick(Sender: TObject);

begin

EditResult.Text:= IntToStr(StrToInt(EditOperand1.Text)+

StrToInt(EditOperand2.Text));

OperatorLabel.Caption := '+';

ResultLabel.Caption := '=';

EditOperand1.SetFocus;

end;

При нажатии на кнопку (сложить) в поле результата (объект EditResult, свойство Text) отображается сумма операндов. Знак операции (OperatorLabel.Caption) будет отображаться как символ +. Знак завершения операции (ResultLabel.Caption) – символ =.

Остальные методы вычислений подобны методу BtnAddClick. Отличие только в преобразовании строки в число/число в строку в операции деления (метод BtnDivedeClick), так как результат вычисления может быть дробным числом.

Шаг 4. Очистка полей и завершение работы приложения

Код метода очистки полей ввода и поля результата (метод BtnClearClick) полностью совпадает с методом активизации приложения (OnCalcActivate).

Для завершения работы приложения достаточно в методе BtnCloseClick вызвать процедуру Close – закрытие формы.

Шаг 5. Выполнение приложения

Откомпилируйте проект ProjectCalc. Для компиляции выберите из меню Project команду Compile или нажмите комбинацию клавиш Ctrl+F9.

После успешной компиляции для выполнения приложения Калькулятор необходимо выбрать в меню Run команду Run или нажать клавишу F9. На рисунке 5.9 приведено главное окно приложения Калькулятор после выполнения операции сложения.

Рисунок 5.9 – Приложение Калькулятор. Сложение чисел

Не изменяя значения операндов, можно вычислить их разность, произведение и получить результат деления. Достаточно просто щелкнуть по соответствующей кнопке.

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

Завершить работу приложения можно щелчком по кнопке Выход или закрыть окно, щелкнув по кнопке .