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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2019, 10:51   #1
BVnosferatu
Пользователь
 
Регистрация: 19.05.2018
Сообщений: 27
Восклицание Подскажите команду для отброса в поле ввода не чисел

Сижу на Lazarus 1.4.0. Столкнулся с проблемой пустого ввода, её решил путем создания двух переменных, одна строковая, вторая считает её длину и если 0 выполняет условие, но после этого возникла другая проблема. При вводе НЕ числа, выбивает ошибку и программа крашится. Как мне, в edit1, запретить ввод НЕ чисел, или какие есть команды для этого??? Заранее спасибо.
BVnosferatu вне форума Ответить с цитированием
Старый 08.03.2019, 11:16   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Вариантов полно:
1. Оставить как у вас, только обернуть в try
2. Вместо StrToInt (или что там у вас) использовать StrToIntDef и подобные с дефолтным значением
3. Вместо StrToInt (или что там у вас) использовать TryStrToInt и подобные с контролем возврата
4. Использовать TEdit.NumbersOnly (это в новых delphi, на счет лазаруса уточните сами)
5. Использовать TMaskEdit
6. Навесить обработчики на едит https://www.askingbox.com/tip/delphi...mbers-in-tedit
p51x вне форума Ответить с цитированием
Старый 10.03.2019, 11:02   #3
BVnosferatu
Пользователь
 
Регистрация: 19.05.2018
Сообщений: 27
По умолчанию

Извините за мое незнание, хочу спросить. StrtoIntDef если вводится не число, то возвращает дефолтное значение интеджера?
BVnosferatu вне форума Ответить с цитированием
Старый 10.03.2019, 11:19   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
StrtoIntDef если вводится не число, то возвращает дефолтное значение интеджера?
А самому попробовать в коде? И хорошо бы в качестве дефолтного использовать последнее введенное правильное значение
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.03.2019, 11:19   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

https://www.freepascal.org/docs-html...rtointdef.html
Цитата:
Description
StrToIntDef will convert a string to an integer. If the string contains invalid characters or has an invalid format, then Default is returned.
p51x вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обеспечить зависимость значений для ввода в поле базы данных от значения в другом поле базы данных? tuchin Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 11 28.04.2017 21:08
Поле ввода Cas01 PHP 1 30.05.2013 22:40
Как сделать запрет ввода букв в поле для ввода input zvezda_t PHP 1 27.12.2009 22:02
После ввода в поле по Enter нужно перейти на другое поле! •ScReam•™ Помощь студентам 2 16.06.2009 08:47
Подскажите команду kayman БД в Delphi 0 14.09.2007 13:11