Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная_Delphi_1.doc
Скачиваний:
17
Добавлен:
24.08.2019
Размер:
3.3 Mб
Скачать

1.7. Процедуры обработки событий

Вид созданной формы подсказывает, как работает приложение. Пользователь должен ввести в поля редактирования исходные данные и щелкнуть мышью на кнопке <Вычислить>. Щелчок на изображении командной кнопки — это пример того, что в Windows называется событием.

Событие (Event) — это то, что происходит во время работы программы. В Delphi каждому событию присвоено имя. Например, щелчок кнопкой мыши - это событие OnClick, нажатие кнопок на клавиатуре - это событий OnKeyPress при вводе данных в поля ввода для компонентов Edit1 и Edit2.

При создании процедуры обработки события, надо сначала в окне Object Inspector выбрать компонент, для которого создается процедура обработки события. Затем в этом же окне нужно выбрать вкладку Events (События). В левой колонке вкладки Events перечислены имена событий, которые может воспринимать выбранный компонент (объект). Если для события определена (написана) процедура обработки события, то в правой колонке рядом с именем события выводится имя этой процедуры. Для того чтобы создать функцию обработки события, нужно сделать двойной щелчок мышью в поле имени процедуры обработки соответствующего события. В результате этого откроется окно редактора кода, в которое будет добавлен шаблон процедуры обработки события, а в окне Object Inspector рядом с именем события появится имя функции его обработки.

// Процедура обработки события при нажатии кнопки <Вычислить>

procedure TForm1.ButtonlClick(Sender: TObject);

var

dist : integer; // дистанция, метров

t : real; // время как дробное число

min : integer; // время, минуты

sek : integer; // время, секунды

v : real; // скорость

begin

// получить исходные данные из полей ввода

dist := StrToint(Edit1.Text); t := StrToFloat(Edit2.Text);

// предварительные преобразования

min := Trunc(t); // кол-во минут — это целая часть числа t

sek := Trunc(t*100) mod 100;

// кол-во секунд — это дробная часть числа t

// вычисление

v := (dist/1000) / ((min*60 + sek)/3600);

// вывод результата

label4.Caption := 'Дистанция: '+ Edit1.Text + ' м' + #13 + 'Время: ' + IntToStr(min) + ' мин ' + IntToStr(sek) + ' сек ' + #13 +'Скорость: ' + FloatToStrF(v,ffFixed,4,2) + ' км/час';

end;

// Процедура обработки события при нажатии кнопки <Завершить>

// нажатие кнопки Завершить

procedure TForm1.Button2Click(Sender: TObject);

begin

Form1.Close; // закрыть главное окно программы

end;

// Процедура обработки события при нажатии клавиш в поле Дистанция

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

// Key — символ, соответствующий нажатой клавише. Если символ

// недопустимый, то процедура заменяет его на символ с кодом 0.

// В результате этого символ в поле редактирования не появляется,

// и у пользователя создается впечатление, что программа не реагирует

// на нажатие некоторых клавиш.

case Key of

'0'..'9' : ; // цифра

#8 : ; // клавиша <Back Space>

#13 : Edit2.SetFocus ; // клавиша <Enter>

// остальные символы — запрещены

else Key :=Chr(0); // символ не отображать

end;

end;

// Процедура обработки события при нажатии клавиш в поле Дистанция

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

case Key of

'0'..'9', ',' : ; // цифра

#8 : ; // клавиша <Back Space>

// остальные символы — запрещены

else Key :=Chr(0); // символ не отображать

end;

end;

8. Запуск приложения на выполнение

Перед запуском приложения на выполнение после создания процедур обработок событий следует сохранить. Для этого нужно из меню File выбрать команду Save all или щелкнуть на значке , что позволит сохранить весь проект. Затем нужно из меню Run выбрать команду Run или щелкнуть на соответствующей кнопке панели инструментов Debug .