- •1. Среда быстрой разработки приложений Delphi и линейный алгоритм.
- •Теоретическая часть
- •1.1. Запуск среду быстрой разработки приложений Delphi
- •Окно просмотра списка объектов Главное окно
- •М еню команд
- •1.2. Создание проекта
- •1.3. Сохранение проекта
- •1.4. Условие задачи
- •1.5. Установка компонентов
- •1.6. Свойства компонентов
- •1.7. Процедуры обработки событий
- •1.8. Задание
- •1.9. Индивидуальные задания
- •1.10 Вопросы
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 .