| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > контроль ввода данных |
| Автор: Solomon 20.9.2006, 15:27 |
| с помощью каких функций можно определить введено в текстовое поле чилсо и нечисло а просто текст... Насколько я знаю в кампиляторах Boland есть такие функции... p.s. Поиском пытался найти так ничего и не нашол Добавлено @ 15:30 Все нашол... извеняюсь за флуд |
| Автор: Solomon 20.9.2006, 15:45 |
| мдяя.. найти нашол, но чет оно не пашит Так что вопрос еще открыт |
| Автор: Yra 20.9.2006, 15:59 |
| isalpha(char) - true, если аргумент - символ алфавита isdigit(char) - true, если арг. - (0...9) |
| Автор: Solomon 20.9.2006, 16:08 |
| Это когда у нас один символ... и эту проверку надо делать непосредственно при вводе каждого символа, можно конечно, но для начала бы хотелось мне узнать куда эту проверку именно вставить... Я вообщето себе это представлял немного по другому... Вводиш в поле текст и нажимаеш кнопку "Далее", если введено число то производились бы расчеты и выводился бы результат. А если введен просто текст... то при нажатии "Далее" ничего бы не происходило до тех пор пока небудет введено число или выкидывался соответствующий месседж бокс... |
| Автор: Yra 20.9.2006, 16:14 |
| В обработчике нажатия кнопки: len - длинна введёной строки; name - масив char; for (int i = 0; i < len; i++) if (isdigit(name[i])) ...... else ...... и все... никакой светлой мысли. |
| Автор: Bunny 20.9.2006, 16:26 | ||
| Solomon а не лучше в обработчике OnKeyPress Edita проверять какая клавиша была нажата?!
|
| Автор: Solomon 20.9.2006, 16:26 |
| кстати как определить длинну текста введенного в Edit? |
| Автор: Yra 20.9.2006, 16:36 | ||||
Edit1->Text.Lenght(); |
| Автор: Solomon 20.9.2006, 16:37 |
| Bunny, дякую )) все нормально работает ) |
| Автор: Akeem 20.9.2006, 16:52 |
| Также можно было бы заделать фичу с регулярными выражениями. |
| Автор: Alexeis 20.9.2006, 17:04 | ||
|
| Автор: Bima 21.9.2006, 07:16 | ||
вот код простого примера. На форме лежит Edit1 и Label1.
сама подпрограмма Digit делает преобразование. Если преобразование получилось, то возвращает true, если не получилось, значит возвращает false (это была не цифра). Сам код проверки на цифру можно вставлять в любой момент, а не только на обработчик ввода текста. Хочу обратить внимание!!! при отладкт программы если будет возникать ошибка, компилятор будет ругаться, но с компилированной программой все будет нормально! |
| Автор: aleks88 23.1.2012, 14:05 |
| В Edit нужно вводить числа, буквы и некоторые символы. Как сделать, чтобы невозможно было ввести первым знаком "пробел" ? |
| Автор: Данкинг 23.1.2012, 15:14 |
| Проверять: если длина текста в Edit = 0 и символ нажатой клавиши = 32. |
| Автор: aleks88 23.1.2012, 19:25 |
| Можно более подробно :( |
| Автор: Данкинг 23.1.2012, 22:55 | ||
|
| Автор: xvr 24.1.2012, 11:19 |
| Еще стоит добавить Key=0; внутрь if'а. А то он сообщение выдаст, но пробел все равно добавит |
| Автор: borisbn 24.1.2012, 17:17 |
| Вот (в аттаче). Дарю. Как-то делал обёртку над TEdit'ом для ввода и редактирования чисел. В аттаче cpp, h и chm. |