Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2011, 16:03   #1
Человек Панда
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 75
По умолчанию Организация исключения типа Estackoverflow

Здравствуте.В своей программе пытаюсь организовать исключение на ошибку переполнения стека stackoverflow.Представил,что пользователь уснул на клавиатуре и ввел очень большое число в ячейку stringgrid.Вот участок кода,не могу понять почему не возникает исключение

Код:
    s:=X.Cells[x.Col,x.Row];
 try  TryStrToFloat(s,number);
         except on E:EOverflow do  
   begin                                     
   MessageDlgpos('Введите число',mterror,[mbOK],0,700,300);
   X.cells[X.col, X.row]:='';  //очищаем для корректного ввода
   end;
end;
Человек Панда вне форума Ответить с цитированием
Старый 07.07.2011, 16:10   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

1)насколько я помню TryStrToFloat не вызывает исключения
2)причем тут переполнение стека к переводу строки в число?
3)EOverflow это совсем другое исключение, и возникает не при переводе строки в число, а при работе с вещественными числами.

надо примерно так:
Код:
 if not TryStrToFloat(X.Cells[x.Col,x.Row],number) then
  begin
   MessageDlgpos('Введите число',mterror,[mbOK],0,700,300);
   X.cells[X.col, X.row]:='';  //очищаем для корректного ввода
  end;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.07.2011, 16:24   #3
Человек Панда
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 75
По умолчанию

Соврал.Ошибка Eoverflow.Все равно не исчезает.
Человек Панда вне форума Ответить с цитированием
Старый 07.07.2011, 16:25   #4
Человек Панда
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 75
По умолчанию

В пошаге именно на эту строчку ругается
Человек Панда вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Каким образом сохранить цвет. Типа в переменную типа TColor ? serres C++ Builder 5 07.12.2010 16:19
Ошибка при заполнении БД: EStackOverFlow insense БД в Delphi 7 29.06.2010 14:38
in Формула типа String out результат типа Double Gypsy Общие вопросы Delphi 3 16.04.2010 10:21
Запись числа типа инт в ячейку двумерного массива типа char AxenicX Помощь студентам 1 25.09.2009 00:35