![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработка исключительной ситуации... [D5, Win95/98]
MaXie © (2002-02-20 12:34:00)Пожалуйста подскажите, каким образом можно перехватывать сообщения о возникновении исключительной ситуации при работе с элементами класса TMaskEdit?
Как подавить появление сообщения об ошибке, выдаваемого в ответ на потерю фокуса одним из элементов класса TMaskEdit, когда текс, введенный в его поле, не соответствует его маске?
Набережных С. (2002-02-21 16:16:00) [1]Сделай свой компонент, перекрыв у него ValidateError(или ValidateEdit - по вкусу).
DieHard (2002-02-21 12:26:00) [2]>В качестве класса исключения выбран EAbort, обеспечивающий обработку любого типа исключений.
Это неверно. Базовый класс для исключений - Exception
MaXie (2002-02-21 12:18:00) [3]Верное замечание, и все же!!!
Каким образом в этом случае необходимо обработать исключение, чтобы перехватить появление окна с сообщением об ошибке?
Как построить алгоритм обработки исключительной ситуации try-except-end?
Подскажите пожалуйста, ведь наверняка решение этой задачи более чем тривиально...
Набережных С. (2002-02-20 18:00:00) [4]Ты пытаешся обработать исключение в строке
B[2] := MaskEdit2_KorSchet.Text
Откуда оно здесь возмется, если B[2]- типа string? Исключение возникает раньше, до вызова обработчика OnExit. Посмотри исходники TMaskEdit.
MaXie (2002-02-20 13:59:00) [5]Да, нет! Это все понятно!
Не понятно другое. Есть обработчик события:
procedure TForm1.MaskEdit2_KorSchetExit(Sender: TObject);
begin
try
B[2] := MaskEdit2_KorSchet.Text
except
on EAbort do MaskEdit2_KorSchet.SetFocus
end
end;
, т.е. значение вводимое в поле элемента MaskEdit2_KorSchet должно быть присвоено третьему элементу массива B[]. Исключительная ситуация возникает в момент выхода из поля элемента MaskEdit2_KorSchet в случае незавершенной операции ввода.
В качестве класса исключения выбран EAbort, обеспечивающий обработку любого типа исключений. Предполагается, что в случае возбуждения исключительной ситуации, фокус не покинет элемента ввода.
В теории должен, но на практике не работает. Вот и возникает вопрос: каким образом необходимо обработать исключение?
Pete (2002-02-20 12:47:00) [6]попробуй
try
.
.
.
except
.
.
end;