Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
230401_MU_-_Osnovy_algoritmizatsii_i_programmir...docx
Скачиваний:
12
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆
    1. Упражнения. Совершенствование проекта

  1. Обеспечьте удаление кнопки Button1 (а также и метки Label1) после ее нажатия. Для этого добавьте в процедуру TForm1.Button1Click(Sender:TObject) строки, задающие значение False свойствам Visible этих компонентов.

  2. Засекретим текст, вводимый в строку редактирования Edit1. Для этого в окне ObjectInspector укажите для этого компонента символ (свойство PasswordChar), который будет печататься в строке при наборе имени вне зависимости от набираемых букв (обычно используется *).

  3. Сделайте так, чтобы цвет формы менялся в зависимости от правильности введенного имени. Для этого добавьте вусловный оператор выражения вида (не забудьте использовать begin и end):

Form1.Color:=clBlack;

Практическое занятие №31 Создание проекта с использованием компонентов ввода и отображения чисел, дат и времени. Калькулятор

Цель работы: научиться создавать проект с использованием компонентов ввода и отображения чисел, дат и времени.

Теоретическая часть

Создадим новый проект приложения. К примеру, в Delphi 7 для этого следует выполнить команду меню File → New → Application.

Теперь разработаем программу калькулятора. Это будет не инженерный, а обычный калькулятор, поэтому над оформлением формы сильно мучаться не придётся – она будет содержать всего лишь одно текстовое поле и 16 кнопок.

Конечный вид размещения элементов управления на форме показан на рис. 1.5.

Практическая часть

Ход работы

Приступим к разработке этой формы. Для начала присвоим значения некоторым свойствам формы Form1 согласно табл. 1.2.

Рис. 1.5. Конечный вид формы программы калькулятор

Таблица 1.2. Свойства формы Form1

Свойство

Значение

Пояснение

Caption

Калькулятор

Заголовок формы

BorderStyle

bsDialog

Граница формы не позволяет изменять ее размеры – как у диалоговых окон

Height

170

Высота формы

Width

173

Ширина формы

Теперь разместим на форме компонент Edit (текстовое поле) со вкладки Standartпалитры компонентов.

Присвоим свойствам компонента Edit1 значения согласно табл. 1.3

Таблица 1.3. Свойства компонента Edit1

Свойство

Значение

Пояснение

Text

Очищаем содержимое текстового поля

Left

4

Отступ слева

Top

4

Отступ сверху

Width

157

Ширина поля

Настал черед кнопок. Для этого можно было бы использовать обычный компонент Buttonсо вкладки Standart, но вместо него мы воспользуемся компонентом BitBtn со вкладки Additional, чтобы надписи на кнопках можно было сделать цветными.

Разместим вначале на форму кнопку, соответствующую цифре 7, и присвоим ее свойствам значения согласно табл. 1.4.

Таблица 1.4. Свойства кнопки BitBtn1

Свойство

Значение

Пояснение

Caption

7

Надпись на кнопке

Left

4

Отступ слева

Top

32

Отступ сверху

Width

33

Ширина кнопки

Font.Size

10

Делаем шрифт надписи крупнее

Font.Color

clBlue

Выделяем надпись синим цветом

Разместим на форме остальные кнопки, соответствующие цифрам калькулятора. Для этого можно просто выделить уже созданную кнопку, скопировать ее в буфер обмена (например, нажав комбинацию клавиш <Ctrl+C> или выполнив команду меню Edit → Copy), а затем вставить из буфера обмена требуемое количество раз, нажав комбинацию клавиш <Ctrl+V> или выполнив команду меню Edit → Paste. Присвоим свойству Caption каждой кнопки соответствующее значение, а значения свойств Left и Top установим, руководствуясь табл. 1.5.

Таблица 1.5. Координаты цифровых кнопок калькулятора

Caption

8

9

4

5

6

1

2

3

0

Left

40

76

4

40

76

4

40

76

4

Top

32

32

60

60

60

88

88

88

116

Разместим на форме кнопки, соответствующие сбросу (“CE”) и знаку равно (“=”). Изменим из свойства Caption , а так же Left (для кнопки CE – 40, для кнопки = - 60) и Top (116). Свойству Font.Color Присвоим значение clRed (надписи будут выделены красным цветом).

Напоследок разместим на форме ещё четыре кнопки BitBtn, соответствующие арифметическим действиям сложения (свойство Caption = +), вычитания (Caption = -), деления (Caption = /) и умножения (Caption = *). Свойству Width каждой из кнопок присвоим значене 37, свойству Left – значение 124, а свойству Font.Color – значене clNavy. Значения свойства Top соответсвуют цифровым кнопкам калькулятора (32, 60, 88 и 116).

Объявление переменных

Теперь перейдем в редактор кода. Первым делом объявим все переменные, которые будем использовать в программе. Переменные объявляются в разделе var:

…

Var

Form1: TForm1;

…

Num1, num2: integer; // для хранения первого и второго числа

Doit: string; // действие, которое надо выполнить с числами

Событие OnClick кнопок калькулятора

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

Для кнопки 0 это будет:

Procedure TForm1.BitBtn10Click (Sender: TObject);

Begin

Edit1.Text:= Edit1.Text + ‘0’;

End;

Для кнопки 1:

Procedure TForm1.BitBtn7Click (Sender: TObject);

Begin

Edit1.Text:= Edit1.Text + ‘1’;

End;

И так далее…

При нажатии кнопки CEдолжен происходить сброс:

Procedure TForm1.BitBtn11Click (Sender: TObject);

Begin

Edit1.Clear;

Num1:=0;

Num2:=0;

Doit:=’ ‘;

End;

Здесь очищается текстовое поле (метод Clear) и обнуляются все переменные.

Теперь обработаем события нажатия кнопок арифметических действий.

Для сложения:

Procedure TForm1.BitBtn13Click (Sender: TObject);

Begin

Num1:= StrToInt (Edit1.Text);

Doit:= ‘плюс’;

Edit.Clear;

End;

Для вычитания:

Procedure TForm1.BitBtn14Click (Sender: TObject);

Begin

Num1:= StrToInt (Edit1.Text);

Doit:= ‘минус’;

Edit.Clear;

End;

Для умножения:

Procedure TForm1.BitBtn16Click (Sender: TObject);

Begin

Num1:= StrToInt (Edit1.Text);

Doit:= ‘умножить’;

Edit.Clear;

End;

Для деления:

Procedure TForm1.BitBtn15Click (Sender: TObject);

Begin

Num1:= StrToInt (Edit1.Text);

Doit:= ‘разделить’;

Edit.Clear;

End;

В этих процедурах сначала запоминается число, введенное пользователем (num1), поскольку, если он выполняет какое либо действие, то это означает, что первое число уже введено. Затем запоминается действие (doit), которое пользователь хочет выполнить над переменной num1. После этого текстовое поле очищается (Edit1.clear), чтобы пользователь мог ввести второе число.

Осталась только одна кнопка =, которая выводит результат:

Для сложения:

Procedure TForm1.BitBtn12Click (Sender: TObject);

Begin

Num2:= StrToInt (Edit1.Text);

If doit:= ‘плюс’

Then Edit1.Text:= IntToStr (num1 + num2);

If doit:= ‘минус’

Then Edit1.Text:= IntToStr (num1 - num2);

If doit:= ‘умножить’

Then Edit1.Text:= IntToStr (num1 * num2);

If doit:= ‘разделить’

Then Edit1.Text:= IntToStr (num1 div num2);

Num1:=0;

Num2:=0;

Doit:= ‘ ‘;

End;

Пользователь нажимает кнопку = после того как уже ввел второе число, поэтому число сохраняется в переменной num2. Затем мы проверяем, какое действие хотел выполнить пользователь. Результат операции заносится в текстовое поле (свойство Edit1.Text), после чего все переменные обнуляются для использования в последующих расчетах.

Компиляция и запуск программы

Теперь можно откомпилировать и запустить программу на выполнение. При первом запуске программы потребуется сохранить файлы с исходным кодом программы. Сохраним файл, содержащий код программы, под именем Calc1.pas, а файл проекта Delphi – под именем Calc.dpr. Программа Калькулятор в действии показана на рис 1.6.

Примечание:

Возможно, у учителя возник вопрос: “А где же различные проверки, например, деления на ноль?” Об этом можно не беспокоиться, поскольку в Delphi это все учитывается, и при неккоректных значениях на экране появляется соответствующее сообщение (рис. 1.7).

Рис.1.6. Программа калькулятор в действии Рис. 1.7. Сообщение о делении на ноль

Практическое занятие №32 Создание проекта с использованием компонентов стандартных диалогов и системы меню.

Разработка проекта Goroscop

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

Теоретическая часть