34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
|
||||||
1 | ||||||
Как сделать проверку Edit по окончании ввода числа?31.01.2014, 18:52. Показов 2620. Ответов 17
Метки нет (Все метки)
Есть код
*т.е. он 3 сравнивает с разрядом десятков тысяч
0
|
31.01.2014, 18:52 | |
Ответы с готовыми решениями:
17
Как сделать проверку правильности ввода числа Как сделать проверку на правильность ввода двоичного числа Как сделать проверку Edit? Как сделать проверку нескольких edit по циклу? |
164 / 49 / 27
Регистрация: 04.06.2013
Сообщений: 636
|
||||||
31.01.2014, 21:55 | 2 | |||||
можно пойти двумя способами.можно проверять по нажатии ентер, а можно, если у тебя колличество 25632 неизменно, то можно ещё наложить условие, что
1
|
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
|
||||||
31.01.2014, 23:19 [ТС] | 3 | |||||
не работает
пишу
0
|
164 / 49 / 27
Регистрация: 04.06.2013
Сообщений: 636
|
||||||
31.01.2014, 23:31 | 4 | |||||
0
|
Практикантроп
4824 / 2717 / 525
Регистрация: 23.09.2011
Сообщений: 5,777
|
|
31.01.2014, 23:33 | 5 |
а это не правильно... . Мало того, что синтаксис безбожно игнорирован (это в Паскале регистр символа не важен, а Билдер к этому весьма чувствителен!), так и по смыслу "не того...", - длина может и быть в 5 символов, но символы эти - не цифры. Я бы сравнивал так: Edit1->Text.ToIntDef(32767) > Edit7->Text.ToIntDef(0) .
0
|
31.01.2014, 23:44 | 6 |
Это все изначально неверно воспринято.
Что происходит по окончании ввода? Юзер жмет какую-то кнопку или энтер, верно? Вот тут и нужно делать "проверку", в чем бы она не заключалась.
1
|
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
|
||||||
01.02.2014, 04:43 | 7 | |||||
1
|
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
|
|
01.02.2014, 07:27 [ТС] | 8 |
+1, мне надо чтобы при выходе из Edit1 проверялось if (Edit1->text>200'000'000) то выдавалось сообщение об ошибке, а если введено число 99'999'999, то ни чего не выводилось
0
|
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
|
||||||
01.02.2014, 07:35 | 9 | |||||
А, ну да, я сюда вообще не посмотрел )
Так надо:
0
|
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
|
|
01.02.2014, 07:41 [ТС] | 10 |
Просто такая фигня тут. значение типа INT=2147483645, если пользователь ввел такое число 2147483655, то вылетает фатальная ошибка (вот в чем тут подвох).
Добавлено через 2 минуты Вот знаете есть такие люди, которые решат проверить прогу на уникальность))) закроют глаза и нажмут "9999999999999999999999" и тут им вылетает сис/ошибка
0
|
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
|
||||||
01.02.2014, 08:08 | 11 | |||||
Ну сделай StrToFloat
и ограничь длину ввода
0
|
91 / 91 / 22
Регистрация: 02.07.2013
Сообщений: 332
|
|
01.02.2014, 08:10 | 12 |
Within_t, ошибка не фатальная, а обычный эксепшн, говорящий, что введённое число слишком многовато для целого. Поэтому, один добрый человек уже посоветовал сравнивать числа, используя ToIntDef. Читай внимательнее.
0
|
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
|
||||||
01.02.2014, 09:00 [ТС] | 13 | |||||
я разобрался, сделал маленько по другому
0
|
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
|
||||||
01.02.2014, 09:12 | 14 | |||||
Нелишним будет
0
|
91 / 91 / 22
Регистрация: 02.07.2013
Сообщений: 332
|
|
01.02.2014, 11:22 | 15 |
Можно ещё пользователю предварительно клавиатуру подсунуть с выдранными буковками, чтоб даже и не думал вводить не цифры!
Потом, когда-нибудь, потребуется вводить не цифры, а буквы, и не менее 20 штук, и уйдут часы и нервы на поиск где-то установленных в коде модификаторов ввода. Я про MaxLength и NumbersOnly.
0
|
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
|
|
01.02.2014, 11:26 | 16 |
c0rvax, по-вашему получается, "защита от дурака" — пустая трата времени? Пусть в программе лучше ошибки выбивает?
0
|
91 / 91 / 22
Регистрация: 02.07.2013
Сообщений: 332
|
|
01.02.2014, 15:53 | 17 |
+1, по-моему, надо получить строку, которую пользователь ввёл, проанализировать её содержимое и вывести пользователю внятное сообщение об ошибке, а не заниматься непонятными ограничениями ввода, которые могут напрочь развалить алгоритм, если что-то потребуется изменить.
0
|
01.02.2014, 16:21 | 18 |
Просто надо разносить сам фильтр и его применение. Таким образом можно применять один и тот же фильтр в различных местах без лишнего кода, а при необходимости изменить фильтр, нужно будет его изменить только в одном месте.
Это можно сделать проще всего с помощью регулярок - regex, например.
0
|
01.02.2014, 16:21 | |
01.02.2014, 16:21 | |
Помогаю со студенческими работами здесь
18
Как считать массив строк из стандартного ввода, если нет никакого сигнала об окончании ввода Как сделать проверку корректности ввода логина? Как сделать проверку ввода текста в обратной связи? Как сделать проверку формы на пустое значение в поле ввода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |