Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Глобальный перехват 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 секцию.


Наверх

Титульная страница Поиск, карта сайта Написать письмо