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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2011, 11:24   #1
RomanA
Пользователь
 
Регистрация: 10.08.2011
Сообщений: 30
По умолчанию Edit автоматически вставляет пробел при считывании чисел от 1000, как избавиться?

Проблема: считываю, введенное в edit число и, если оно больше тысячи, то программа выдает ошибку, что это число не является целым. Как понимаю, edit автоматически вставляет пробел после трех цифр, поэтому функция преобразования StrToInt не работает. Помнится, когда использовал Delphi с таким не сталкивался.

Ну собственно вопрос, есть ли такая настройка, которая не даст edit'у автоматически разбивать число на группы?

P. S. Сорри, если тупой вопрос, как спрашивать в гугле не совсем понимаю, 15 минут поиска ничем не увенчались.
RomanA вне форума Ответить с цитированием
Старый 10.08.2011, 13:19   #2
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Возможно просто левые символы вводятся в Edit.
В обработчик нажатия клавиши такой код поставте, он не даст вводить в Edit ничего кроме цифр:
Код:
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
Set <char, '0', '9'> Dig;
Dig << '0' << '1' << '2' << '3' << '4' << '5' << '6' << '7' << '8' << '9' << '0';
if ( ! Dig.Contains(Key)
  { Key = 0; Beep();}
}
А еще есть способ просто удалять из AnsiString все символы отличные от цифр.
An1ka вне форума Ответить с цитированием
Старый 10.08.2011, 13:45   #3
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> есть ли такая настройка, которая не даст edit'у автоматически разбивать число на группы

Цитата:
ThousandSeparator - The character used to separate thousands in numbers
with more than three digits to the left of the decimal separator. The
initial value is fetched from LOCALE_STHOUSAND. A value of #0 indicates
no thousand separator character should be output even if the format string
specifies thousand separators.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 11.08.2011, 08:52   #4
RomanA
Пользователь
 
Регистрация: 10.08.2011
Сообщений: 30
По умолчанию

Спасибо за помощь. Но решил проблему заменив Edit на CSpinEdit, оказалось удобнее.

Правда возникла другая проблема: CSpinEdit автоматически обрабатывает исключения и, если допустим, я туда введу не цифры, а буквы, он просто пропишет в Value значение MinValue. Мне же надо при вводе неправильного значения выводить сообщение на экран, о том, что это произошло и прерывать выполнение расчетов.

Подскажите, каким образом мне получить в программе данные о том факте, что произошла обработка исключения.
RomanA вне форума Ответить с цитированием
Старый 11.08.2011, 15:00   #5
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Не проще ли просто запретить ввод символов отличных от цифр ?
An1ka вне форума Ответить с цитированием
Старый 12.08.2011, 11:48   #6
RomanA
Пользователь
 
Регистрация: 10.08.2011
Сообщений: 30
По умолчанию

Цитата:
Сообщение от An1ka Посмотреть сообщение
Не проще ли просто запретить ввод символов отличных от цифр ?
Хм... да, подумав решил, что так будет проще и без лишних проблем.
Всем спасибо за помощь!
RomanA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как избавиться от мерцания при передвижении Timages. jocry Помощь студентам 13 22.07.2012 09:46
Программа,которая автоматически копирует текст в заданной области в браузере и вставляет в эксель Clockgen Фриланс 7 19.10.2010 10:12
Как избавиться от щелчков при синтезировании мелодий? ArcaN0id Мультимедиа в Delphi 6 22.06.2009 03:02
Как избавиться от появления хвоста за движением эдита edit? Горожанин Мультимедиа в Delphi 9 30.04.2009 14:40
Как избавиться от ненужных чисел Славный Общие вопросы Delphi 1 09.06.2008 22:40