в DLL, может обрабатываться только в “цельном” приложении.




• EBreakpoint - вызывается в случае останова на точке прерывания

при отладке в IDE Delphi. Среда Delphi обрабатывает это исключе-

ние самостоятельно.

• EFault - предок исключений, вызываемых в случае невозможности

обработки процессором тех или иных операций.

• EInvalidOpCode - вызывается, когда процессор пытается выполнить

недопустимые инструкции.

• ESingleStep - аналогично EBreakpoint, это исключение происходит

при пошаговом выполнении приложения в IDE Delphi.

• EPropertyError - вызывается в случае ошибок в редакторах свойств,

встраиваемых в IDE Delphi. Имеет большое значение для написания

надежных propertyeditors. Определен в модуле DsgnIntf.pas.

• EResNotFound - происходит в случае тех или иных проблем, имею-

щих место при попытке загрузки ресурсов форм - файлов.DFM в

режиме дизайнера. Часто причиной таких исключений бывает нару-

шение соответствия между определением класса формы и ее описа-

нием на уровне ресурса (например, вследствие изменения порядка

следования полей-ссылок на компоненты, вставленные в форму в

режиме дизайнера).

• EStreamError - предок исключений, вызываемых при работе с пото-

ками.

• EFCreateError - происходит в случае ошибок создания потока (на-

пример, при некорректном задании файла потока).

• EFilerError - вызывается при попытке вторичной регистрации уже

зарегистрированного класса (компоненты). Является, также, предком

специализированных обработчиков исключений, возникающих при

работе с классами компонент.

3.3. Восприятие ввода от пользователя

Обратим особое внимание на одно качество, характерное для многих

управляющих элементов – фокус. Как определить какое окно или поле име-

ет фокус ввода? В каждый конкретный момент фокус имеет только одно по-

ле. Вы можете перемещать фокус, используя клавишу Tab или щелкая мы-

шью по другому компоненту. Каждый раз когда компонент получает или те-

ряет фокус, к нему приходит соответствующее событие, которое указывает,

что пользователь достиг (OnEnter) или покинул (OnExit) компонент.

При использовании компонента Edit для ввода чисел пользователь вме-

сто цифры может набрать букву. Функции преобразования вернут код

ошибки, что поможет определить действительно ли введено число. Когда

можно выполнить такую проверку? Возможно, когда изменится значение

блока редактирования, когда компонент потеряет фокус или когда пользова-

тель щелкнет по некоторой кнопке в диалоговой панели. Можно просматри-

вать входной поток в блоке редактирования и останавливать любой нечи-

словой код.

4. Порядок выполнения работы

1. В среде программирования Delphicоздайте новый проект, выбрав пункт

меню File/NewApplication.

2. Сохраните этот проект в папке"С:\Ваша_группа\Ваша_фамилия Lab2".

(Unit1.pas под новым именем Main2.pas, а Project1.dpr под новым именем

Lab2.dpr).

3. Разработайте приложение, обрабатывающее исключительную ситуацию,

согласно вашему варианту индивидуального задания.

4. Открыть новое приложение.

5. Создать форму с пятью полями редактирования и пятью соответствую-

щими надписями, которые поясняют, какой вид проверки осуществляет

соответствующий компонент 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 и про-

верить, не является ли введенный символ числом или клавишей Back-

Space (которая имеет числовое значение 8).

Begin

if not (key in [ ‘0’.. ‘9’, # 8] } then

Begin

Key:= # 0;

MessageBeep ($ FFFFFFFF);

end;

end;

♦ Для события OnEnter компонента Edit5 записать код, в котором необхо-



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: