Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.07;
Скачать: CL | DM;

Вниз

Обработка исключительной ситуации...   Найти похожие ветки 

 
MaXie ©   (2002-02-20 12:34) [0]

Пожалуйста подскажите, каким образом можно перехватывать сообщения о возникновении исключительной ситуации при работе с элементами класса TMaskEdit?

Как подавить появление сообщения об ошибке, выдаваемого в ответ на потерю фокуса одним из элементов класса TMaskEdit, когда текс, введенный в его поле, не соответствует его маске?


 
Pete ©   (2002-02-20 12:47) [1]

попробуй

try
.
.
.
except
.
.
end;


 
MaXie ©   (2002-02-20 13:59) [2]

Да, нет! Это все понятно!
Не понятно другое. Есть обработчик события:

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, обеспечивающий обработку любого типа исключений. Предполагается, что в случае возбуждения исключительной ситуации, фокус не покинет элемента ввода.
В теории должен, но на практике не работает. Вот и возникает вопрос: каким образом необходимо обработать исключение?


 
Набережных С.   (2002-02-20 18:00) [3]

Ты пытаешся обработать исключение в строке
B[2] := MaskEdit2_KorSchet.Text
Откуда оно здесь возмется, если B[2]- типа string? Исключение возникает раньше, до вызова обработчика OnExit. Посмотри исходники TMaskEdit.



 
MaXie ©   (2002-02-21 12:18) [4]

Верное замечание, и все же!!!
Каким образом в этом случае необходимо обработать исключение, чтобы перехватить появление окна с сообщением об ошибке?
Как построить алгоритм обработки исключительной ситуации try-except-end?
Подскажите пожалуйста, ведь наверняка решение этой задачи более чем тривиально...


 
DieHard ©   (2002-02-21 12:26) [5]

>В качестве класса исключения выбран EAbort, обеспечивающий обработку любого типа исключений.
Это неверно. Базовый класс для исключений - Exception


 
Набережных С.   (2002-02-21 16:16) [6]

Сделай свой компонент, перекрыв у него ValidateError(или ValidateEdit - по вкусу).



Страницы: 1 вся ветка

Текущий архив: 2002.03.07;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
1-19223
Johnmen
2002-02-19 17:01
2002.03.07
Тень отца Гамлета


1-19246
Lord Vader
2002-02-20 09:58
2002.03.07
СРАВНЕНИЕ СТРОК


1-19193
cypher
2002-02-16 16:40
2002.03.07
Простой вопрос


14-19316
Григорий Ситнин
2002-01-16 16:15
2002.03.07
хакнутый тест на интеллект =) интересно.


14-19327
Zevsus
2002-01-20 22:41
2002.03.07
Найти активное приложение