![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Глобальный перехват EConvertError...
botaniQ © (2007-10-11 13:21:00)Еще один маленький вопросик
Можно ли перехватить любой EConvertError в программе? и вместо сообщения "'строка' is not a valid integer value." выводить свое..
Amoeba (2007-10-11 17:24:00) [1]
> Глобально это решается локализацией (проекта), и,
> в частности, ресурсной строки SysConst_SInvalidInteger
>
Готовые файлы здесь: http://polesoft.narod.ru/
evvcom (2007-10-11 16:12:00) [2]
> Замени по всему проекту StrToInt на TryStrToInt
Этого маловато. Надо ж еще результат обработать и, возможно, сказать, что "бестолковый конвертер ошибся" (c) botaniQ (11.10.07 13:50) [4] :)
Leonid Troyanovsky (2007-10-11 15:53:00) [3]
> botaniQ (11.10.07 13:21)
> вместо сообщения "'строка' is not a valid integer value.
> " выводить свое..
Глобально это решается локализацией (проекта), и,
в частности, ресурсной строки SysConst_SInvalidInteger
--
Regards, LVT.
Ega23 (2007-10-11 15:01:00) [4]Незачто.
Однако ты таки загляни внутрь её, посмотри как она устроена.
botaniQ (2007-10-11 14:53:00) [5]
> Ega23 © (11.10.07 14:35) [9]
>
> > botaniQ (11.10.07 14:24) [8]
>
>
> Замени по всему проекту StrToInt на TryStrToInt
Ух ты!!! Полезная ф-ция...я даже не знал про такую....Спасибо!
Ega23 (2007-10-11 14:35:00) [6]
> botaniQ (11.10.07 14:24) [8]
Замени по всему проекту StrToInt на TryStrToInt
botaniQ (2007-10-11 14:24:00) [7]
> Ega23 © (11.10.07 14:04) [7]
>
> > роме StrToInt не
>
>
> Delphi какой?
7ой
Ega23 (2007-10-11 14:04:00) [8]
> роме StrToInt не
Delphi какой?
botaniQ (2007-10-11 13:55:00) [9]
> botaniQ (11.10.07 13:52) [5]
> ...например, и при DateToStr ()!...
Т. е. при StrToDate () :)
botaniQ (2007-10-11 13:52:00) [10]
>
> > Еще один маленький вопросик
>
> Ничего себе маленький. Или ты думаешь что "'строка' is not
> a valid integer value" - это единственная причина сего исключения?
>
Да это может сработать, например, и при DateToStr ()! Но у меня в проге других "конвертерных" ф-ций, кроме StrToInt не используется.... :)
botaniQ (2007-10-11 13:50:00) [11]
> Dib@zol © (11.10.07 13:37) [1]
> Можно. Каждый EConvertError'о - опасный код в проге пропиши
> как try-except секцию.
Да можно...но это долго - либо можно просто процедурку организовать - но это тоже не быстро подставлять ее везде.....а сроки горят
> Palladin © (11.10.07 13:39) [2]
> TApplicationEvents.OnException
Вот это хороший вариант! Спасибо! Сделал так:
procedure TMainForm.FormCreate(Sender: TObject);
begin
...
Application.OnException:=ProgExcept;
...
end;
procedure TMainForm.ProgExcept(Sender: TObject; Err: Exception);
begin
If Err is EConvertError then
MessageDlg('Convert ошибся!', mtError, [mbOk], 0);
...
end;
Всё чудесно работает...Всем спасибо!!
Германн (2007-10-11 13:48:00) [12]
> Еще один маленький вопросик
Ничего себе маленький. Или ты думаешь что "'строка' is not a valid integer value" - это единственная причина сего исключения?
Palladin (2007-10-11 13:39:00) [13]TApplicationEvents.OnException
Dib@zol (2007-10-11 13:37:00) [14]Можно. Каждый EConvertError'о - опасный код в проге пропиши как try-except секцию.