Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник ПППН_ОАиП_Delphi_ПО_2005-2006.doc
Скачиваний:
39
Добавлен:
19.08.2019
Размер:
3.77 Mб
Скачать

Практическая работа № 7 Разработка простейшего приложения типа «Калькулятор»

Цель работы:

  1. Закрепить практические навыки применения компонентов страницы Standart.

  2. Закрепить практические навыки написания обработчиков простейших событий.

Краткие теоретические сведения

Метка Label

Компонент Label размещен на закладке Standard и предназначен для размещения на форме однострочных текстовых надписей.

Строка ввода Edit представляет собой однострочное редактируемое текстовое поле.

Компонент Edit размещен на закладке Standard. Предназначена для ввода строки символов с клавиатуры.

Кнопка Button размещена на закладке Standard.

Обработчик события OnClick компонента Button используется для реализации некоторой команды.

Кнопка с изображением BitBtn размещена на закладке Additional и является разновидностью кнопки Button.

Особенность кнопки BitBtn – свойство Glyph, которое определяет растровое изображение на поверхности кнопки. В комплект Delphi входит множество рисунков, разработанных специально для размещения на кнопке BitBtn.

Переключатель RadioButton размещен на закладке Standart и предназначен для выбора одного из нескольких взаимоисключающих решений. Обычно переключатели размещаются на компоненте-контейнере (например, на компоненте GroupBox или Panel).

Группа переключателей RadioGroup размещена на закладке Standart и представляет собой специальный контейнер для размещения переключателей RadioButton.

Основные свойства компонента RadioGroup:

  • Items – содержит список заголовков переключателей

  • ItemIndex – содержит индекс установленного переключателя. Имеет значение –1, если не установлен ни один переключатель, значение 0, если установлен первый переключатель, значение 1, если установлен второй переключатель и т.д.

Задание 1.

Разработать проект простейшего стандартного приложения Windows типа “Калькулятор”.

Порядок выполнения

  1. Загрузите визуальную среду программирования. Создать новый проект.

  2. П оместите на форму визуальные компоненты, как показано на рисунке и соответственно измените их свойства:

  1. Обратите внимание, что цифровые кнопки и кнопка разделителя разрядов (запятая) – компоненты Button – расположены на группирующей панели – компонент Panel. Т.е. панель должна быть помещена на форму до того, как вы будете помещать на нее компоненты Button.

  1. Для цифровых кнопок и кнопки разделителя разрядов (запятая) создайте обработчики событий по аналогии с приведенным ниже для кнопки “1”:

procedure TForm1.Button1Click(Sender: TObject);

begin

form1.Edit1.Text:=form1.Edit1.Text+'1';

end;

  1. Для объекта Form создайте следующий обработчик события:

procedure TForm1.FormActivate(Sender: TObject);

begin

form1.Edit1.Text:='';

end;

  1. Создайте обработчики событий для кнопок арифметических операций и для знака равенства:

Кнопка операции…

Обработчик события:

+

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

x:=StrToFloat(form1.Edit1.Text);

form1.Tag:=1;

form1.Edit1.Text:='';

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

x:=StrToFloat(form1.Edit1.Text);

form1.Tag:=2;

form1.Edit1.Text:='';

end;

/

procedure Tform1.BitBtn3Click(Sender: TObject);

begin

x:=StrToFloat(form1.Edit1.Text);

form1.Edit1.Text:='';

form1.Tag:=3;

end;

*

procedure TForm1.BitBtn4Click(Sender: TObject);

begin

x:=StrToFloat(form1.Edit1.Text);

form1.Edit1.Text:='';

form1.Tag:=4;

end;

=

procedure TForm1.BitBtn5Click(Sender: TObject);

begin

y:=StrToFloat(form1.Edit1.Text);

case form1.Tag of

0: begin

MessageDlg ('Не выбрано ни одно из дейcтвий. Повторите ввод примера',mtError,[mbOk],0);

form1.Edit1.Text:='';

end;

1: y:=y+x;

2: y:=x-y;

3: y:=x/y;

4: y:=x*y;

end;

form1.Edit1.Text:=FloatToStr(y);

end;

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

procedure TForm1.BitBtn5Exit(Sender: TObject);

begin

form1.Edit1.Text:='';

end;

  1. Переменные x, y должны быть глобальными, т.е. доступны во всех процедурах модуля. Для этого опишите их в разделе описания переменных модуля (т.е. в разделе Var в интерфейсной части модуля).

С

  1. Самостоятельно создайте на форме кнопку, при щелчке по которой будет очищаться содержимое поля ввода Edit1.

  1. Сохраните проект в вашем каталоге и запустите программу на исполнение. Ознакомьтесь с ее работой.

Задание 2-го уровня (дополнительное для самостоятельного выполнения)

  • Добавить в программу задания 1 расчет следующих функций: х2, , ех.

  • Д обавить в программу кнопку , позволяющую удалять последний введенный символ в поле Edit.

Задание 3-го уровня (дополнительное для самостоятельного выполнения)

  • Добавить в программу задания 2 расчет следующих функций: lnХ, хy, sinX.

  • Задать два вида калькулятора: обычный (содержит операции +, –, *, /) и инженерный (содержит все операции и функции). Для этого все кнопки для вычисления функций разместить на панели, которая будет скрываться или открываться в зависимости от выбранного пользователем вида калькулятора.

Содержание отчета:

  1. Постановка задачи

  2. Тексты процедур – обработчиков событий, разработанных в приложении Delphi

Контрольные вопросы:

  1. Для чего используется визуальный компонент Label?

  2. Можно ли выводить данные с помощью компонента Edit?

  3. Как программно очистить поле ввода Edit?

  4. Для чего используется диалоговое окно MessageDlg?

  5. При наступлении какого события буде выполнена процедураЮ имеющая следующий заголовок:

procedure TForm1.FormActivate(Sender: TObject);

  1. Для чего используется компонент Panel?

  2. С помощью каких визуальных компонентов можно организовать выбор пользователем одного из нескольких видов калькулятора?

Литература:

  1. В.Попов. Паскаль и Дельфи.— СПб.: Питер, 2003.

  2. Фаронов В.В. Система программирования Delphi. – СПб.: БХВ-Петербург, 2003.