Главная » Уроки по ООП » Урок 24. Обработка исключительных ситуаций |
ПРАКТИЧЕСКАЯ РАБОТА |
Урок 24. Обработка исключительных ситуаций
Уровень 1
Задание 1. Разработать приложение, обрабатывающее исключительную ситуацию.
Ход работы: Создайте форму с пятью полями редактирования и пятью соответствующими надписями, которые поясняют, какой вид проверки осуществляет соответствующий компонент Edit. Форма также содержит кнопку для проверки содержимого первого поля редактирования.
Событие OnClick кнопки должно проверять целочисленность введенного в первое поле значения, например:
Var Number, Code : Integer ;
begin
if Edit1.Text <> ‘ ’ then
begin
val(Edit1.Text, Number, Code);
if Code <> 0 then
begin
Edit1.SetFocus;
MessageDlg (‘Not a number in the first edit ‘ , mtError, [mbOK], 0);
end;
end;
end;
При выходе из компонента Edit2 (событие OnExit) осуществляется аналогичная проверка.
Var Number, Code : Integer ;
begin
if (Sender as TEdit ). Text <> ‘ ’ then
begin
val ((Sender as TEdit ). Text, Number, Code) ;
if Code <> 0 then
begin
(Sender as TEdit ).SetFocus ;
MessageDlg (‘The edit field number ‘ + IntToStr((Sender as TEdit ).Tag) +
‘ does not have a valid number’, mtError, [mbOK], 0) ;
end;
end;
end;
Текст сообщения об ошибке может варьироваться.
Третий компонент Edit выполняет аналогичную проверку при каждом изменении его содержимого (используя событие OnChange).
Записать код для события события OnKeyPress компонента Edit4 и проверить, не является ли введенный символ числом или клавишей Backspace (которая имеет числовое значение 8).
begin
if not ( key in [ ‘0’ . . ‘9’ , # 8] } then
begin
Key := # 0 ;
MessageBeep ($ FFFFFFFF) ;
end;
end;
Для события OnEnter компонента Edit5 записать код, в котором необходимо преобразовать введенные символы в число с помощью функции StrToInt. Использовать исключение для обработки ошибки EConvertError.
Уровень 2.
Написать программу, которая демонстрирует обработку исключений при помощи инструкции try…except.
Уровень 3.
Создать программу, позволяющую пользователю ввести два числа, которые программа разделит. Необходимо поместить на форму три объекта класса TEdit - два для операндов, один – для результата и кнопку (объект класса TButton), нажимая на которую пользователь выполняет деление. Исключить попытку деления на ноль, а так же введения символов вместо цифр. Выдать сообщение о типе возникшей ошибки.
Составитель: Салий Н.А.