Форум: "Начинающим";
Текущий архив: 2010.11.21;
Скачать: [xml.tar.bz2];
ВнизСобытие TField.OnSetText Найти похожие ветки
← →
sergey (2010-08-27 12:46) [0]Всем привет!
в TField.OnSetText:
try
StrToCurr(Text);
Sender.Value := Text;
except
on e: EConvertError do
begin
raise Exception.Create("Ââåäåíî íåäîïóñòèìîå çíà÷åíèå")
end;
end;
при возникновении исключения событие возникает два раза, соотв и окошко с сообщением дублируется. Если написать Field.DataSet.Cancel, в гриде останется предыдущее значение.
Как сделать так, чтобы ошибка не показавылась два раза и возвращать грид(и остальное) в состояние, предшествующее потери фокуса колонкой грида?
← →
Anatoly Podgoretsky © (2010-08-27 12:55) [1]> sergey (27.08.2010 12:46:00) [0]
Строчки местами поменяй, и в конце концов raise это возбудить исключение еще
раз.
← →
sergey (2010-08-27 13:02) [2]
> Anatoly Podgoretsky © (27.08.10 12:55) [1]
Какие строчки?
Если эти:
StrToCurr(Text);
Sender.Value := Text;
, то какая разница?
← →
И. Павел © (2010-08-27 13:05) [3]> при возникновении исключения событие возникает два раза,
> соотв и окошко с сообщением дублируется.
Наверное, можно просто отключить обработчик перед Sender.Value:=... . А в finally включить.
← →
sergey (2010-08-27 13:50) [4]
> И. Павел © (27.08.10 13:05) [3]
Не помогает(
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.11.21;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.003 c