Главная страница
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.011 c
1-19179
konrads
2002-02-18 12:00
2002.03.07
Картинки JPG, TIFF, GIF и т.п в базах данных


14-19329
ses
2002-01-18 18:48
2002.03.07
Как можно???????????


3-19077
Rub
2002-02-08 11:54
2002.03.07
Софтина использует BDE алиас типа для работы с корпоративной БД.....


4-19384
XM-AD
2002-01-03 12:19
2002.03.07
Как вытащить текст из эдита чужого окна???


6-19286
NetBreaker666
2001-12-20 14:38
2002.03.07
Как получать в CGI данные, переданные методом Post???