Задания для самостоятельного решения
Проследите за изменением состояния компонентов Label, Edit и Button при изменении свойств, перечисленных выше.
Поместите в правый нижний угол формы кнопку на расстоянии 5 пикселей от ее края. Создайте обработчик события, который при изменении размеров формы сохраняет местоположение кнопки.
Упражнение 1. Напишите программу для перевода градусной меры угла в радианную.
Решение
Создайте новый проект. Сохраните новое приложение в папке Calculator – файл модуля под именем Main.pas, файл проекта – Angle.dpr.
1 этап. Создадим визуальный интерфейс приложения (рис. 4.2.2).
Рис. 4.
Измените значения свойств формы следующим образом:
-
Name
MainF
Caption
Перевод из градусной меры угла в радианную
Поместите на форму компонент Label, измените значения свойств следующим образом:
-
Name
DegreeLbl
Caption
Введите градусную меру угла
Поместите на форму компонент Edit, измените значения свойств следующим образом:
-
Name
DegreeEdt
Text
0
Поместите на форму компонент Button, измените значения свойств следующим образом:
-
Name
ExecuteBtn
Caption
Перевести
Поместите на форму компонент Label, измените значения свойств следующим образом:
-
Name
RadianLbl
Caption
Радианная мера угла
Поместите на форму компонент Edit, измените значения свойств следующим образом:
-
Name
RadianEdt
Enabled
False
Text
0
Измените размеры формы в соответствии с расположенными компонентами (рис. 4.).
2 этап. Создание программного кода.
Создайте обработчик события OnClick кнопки ExecuteBtn. Нужно взять информацию, введенную в компонент DegreeEdt преобразовать в соответствии с математической формулой:
Радианная_мера_угла = Градусная_мера_угла * ПИ / 180)
и отобразить результат в компоненте RadianEdt.
При выполнении этих манипуляций может возникнуть проблема преобразования форматов данных. Исходные данные (градусная мера угла – это вещественное число) представлены строкой, хранящейся в компоненте DegreeEdt. Для преобразования строки в вещественное число воспользуемся процедурой Val:
procedure Val(S; var V; var Code: integer),
где s – строковое представление числа, v – параметр, через который процедура возвращает число целого или вещественного типа, Code – если строка s не является представлением числа, то параметр Code содержит номер ошибочного символа.
Итак, в обработчике события OnClick кнопки ExecuteBtn введем следующую последовательность операторов:
procedure TForm1.Button1Click(Sender: TObject);
var Angle_degree, Angle_radian: real;
Error: integer;
begin
val(DegreeEdt.text, Angle_degree, Error);
if Error = 0 Then begin
Angle_radian:= Angle_degree*Pi/180;
RadianEdt.text:=FloatToStr(Angle_Radian);
end
else begin
Application.MessageBox(‘Ошибка при вводе градусной меры угла', 'Ошибка', MB_OK);
DegreeEdt.text:='0';
RadianEdt.text:='0';
end;
end;
Поясним операторы обработчика события OnClick.
Первый оператор преобразует введенную в строковом формате градусную меру угла в вещественное число.
Если параметр Error равен нулю, то ошибок при введении числа нет. В этом случае получаем радианную меру угла, функция FloatToStr преобразует вещественное число в строку. В противном случае воспользуемся методом объекта Application для отображения диалогового окна об ошибке, и восстановим нулевые значения в компонентах DegreeEdt и RadianEdt.
Сохраните изменения, внесенные в проект.
Эксперимент. Запустите приложение. Убедитесь в корректной работе созданного приложения.