Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/104: Рейтинг темы: голосов - 104, средняя оценка - 4.90
1 / 1 / 0
Регистрация: 25.12.2009
Сообщений: 49
1

Запрет ввода букв в поле Edit

13.03.2012, 02:03. Показов 19097. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написал следующий код, но он не дает запрета на ввод букв
C++
1
2
3
4
5
void __fastcall TForm1::Edit2KeyPress(TObject *Sender, wchar_t &Key)
{
  if (isdigit(Key)) {return;}
  else Key = 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2012, 02:03
Ответы с готовыми решениями:

Ограничение ввода русских букв в Edit. Всплывающая подсказка над Edit'ом
Добрый день, обращаюсь за помощью по следующим двум вопросам. 1) В Edit нужно чтобы вводились...

Запрет ввода определенных символов в Edit
Я искал на форуме и в гугле, нашел разные варианты, но не нашел который мне бы подошел... Ведь у...

Запрет ввода букв
Всем доброго вечера. Есть программа, как можно запретить ввод букв или как реализовать, чтобы при...

Запрет ввода букв/чисел в StringGrid
Здравствуйте.Помогите, не могу осуществить запрет по определенным стообцам в stringGride цифр, а в...

9
LK
Заблокирован
13.03.2012, 02:09 2
Запрет ввода букв в поле Edit

также имеется поиск

Тема избита.
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
13.03.2012, 03:44 3
C++
1
2
3
4
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, wchar_t &Key)
{
  if ((Key < '0') || (Key > '9')) Key = NULL;
}
1
1 / 1 / 0
Регистрация: 25.12.2009
Сообщений: 49
13.03.2012, 11:18  [ТС] 4
Все равно позволяет вводить другие символы. Не могу понять в чем ошибка. С поля Edit я считываю число для построения графика, если в поле ввести другой символ вылезает ошибка "is not a valid floating point value"
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
13.03.2012, 11:59 5
Данный код, даже Backspace не пропускает. Что в ASCII числа от 0 до 9 идут подряд (30-39), что в юникоде (0030-0039). Поэтому никаких других символов там быть не может. Если нужна другая информация по этому поводу, воспользуйтесь советом LK, касательно поиска данной темы на форуме. Но перед этим, если решили работать с компонентами, ознакомьтесь с их свойствами и функциями (хотя бы с теми, которые используете).
0
1 / 1 / 0
Регистрация: 25.12.2009
Сообщений: 49
13.03.2012, 12:15  [ТС] 6
Ознакомился. Только что еще раз пересмотрел книгу Архангельского "Классы и компоненты". Не нашел свойства компонента, который может изменить данную ситуацию.
0
LK
Заблокирован
13.03.2012, 12:19 7
Поищите MaskEdit. Хотя ваш вопрос решен давно и окончательно. Кто его знает, как и что вы делаете.
1
1 / 1 / 0
Регистрация: 25.12.2009
Сообщений: 49
13.03.2012, 12:22  [ТС] 8
В том и дело, что мне нужно работать без маски ввода .
0
LK
Заблокирован
13.03.2012, 12:24 9
Просто поместите этот код в OnKeyPress любого TEdit'а:
C++
1
2
3
4
5
6
7
8
9
10
if ((Key>='0')&&(Key<='9')) {/*Key = NULL;*/} // цифры
else if (Key==8) {} // <-
else if ((Key=='.') || (Key == ',')) // запятая
{
  if (((TEdit*)Sender)->Text.Pos(DecimalSeparator)!=0) // если запятая уже есть
    Key = 0;
  else // если ещё нет
    Key = DecimalSeparator;
}
else Key = 0; // не цифра
P.S. DecimalSeparator - глобальная переменная - разделитель целой и дробной части.
код с вражеского форума
3
1 / 1 / 0
Регистрация: 25.12.2009
Сообщений: 49
13.03.2012, 12:41  [ТС] 10
Огромное человеческое спасибо, этот код сразу решил проблему.
0
13.03.2012, 12:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.03.2012, 12:41
Помогаю со студенческими работами здесь

Исключения деления на ноль и ввод букв в поле Edit
Добрый вечер, я реализовал программу для расчета дискриминанта и вывода значений x1 и x2. ...

Запрет ввода только минуса в ячейке StringGrid, и запрет на ввод минуса между цифрами
Ребята,очень нужна ваша помощь!Нужно сделать запрет ввода ТОЛЬКО минуса в ячейке и запрет на ввод...

Запрет на символы в Edit
Привет всем! Подскажите пажалста как запретить ввод любых символов в поле Edit кроме...

Запрет удаления символов в Edit
Добрый вечер, каким образом можно обеспечить запрет удаления символов в Edit? Enable = false; не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru