Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.005 c
1-19134
rip
2002-02-19 12:22
2002.03.07
Генератор пароля для брутфорса


3-19107
Hermit
2002-02-05 15:49
2002.03.07
TQuery.Locate


3-19115
Dtr
2002-02-11 11:29
2002.03.07
Как найти все DBGrid у всех DataSource, принадлежащих DataSet


3-19112
Vacheslav
2002-02-11 16:20
2002.03.07
КАК изменить имена колонок в таблице


1-19241
Baz
2002-02-19 15:14
2002.03.07
Хэндл чего я взял?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский