Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.014 c
1-19182
APTEMKA
2002-02-17 02:10
2002.03.07
Кто нибудь знает что делает .... as ....


1-19160
Georg
2002-02-21 11:58
2002.03.07
Шифровки Юстаса (Алексу)


1-19157
vitnt2000
2002-02-21 12:14
2002.03.07
Приложение без формы


3-19095
jack200180
2002-02-08 16:49
2002.03.07
РБД и ....


1-19202
Miwa
2002-02-17 01:14
2002.03.07
Глюк с формой?




   Наверх