Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
klynxe
10 / 10 / 4
Регистрация: 07.09.2012
Сообщений: 538
#1

Запрет ввода символов в поле Edit - C++

09.09.2012, 01:38. Просмотров 1700. Ответов 5
Метки нет (Все метки)

Как запретить нажатие и вставку из буфера всех символов, кроме нужных мне, к примеру разрешить вводить в поле только цифры? И еще 2-ой вариант, как отдельный, как запихать в переменную char или еще в какую Edit->Text в виде массива символов, так что бы можно было сравнить каждый символ в массиве с таблицей символов по коду и определить есть ли запрещенные символы? Какими способами можно реализовать первый и второй способ по отдельности?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2012, 01:38     Запрет ввода символов в поле Edit
Посмотрите здесь:

Запрет ввода символов в консоли - C++
моя консольная программа имеет очень много вводов от пользователя, через контекстное меню (нажмите 1 для того, 2 для другого) чтоб не...

Запрет ввода символов, отличных от цифр - C++
Нужно заполнить двумерный массив только числами. Как это реализовать?

Запрет ввода любых символов кроме цифр в консоли - C++
Ребята подскажите пожалуйста можно ли как-то разрешать ввод в консоль только цифр. Я делаю проверку или с помощью isdigit() или через...

Ввод в консоле только чисел(запрет ввода других символов) - C++
В консольном варианте с предложением пользователю ввести фразу, содержащую и цифры и буквы, чтоб потом программа после ввода исключала...

Запрет ввода букв - C++
Вчера пробовал написать калькулятор. Но в нем можно вводить и буквы и цифры. Что надо допасать в коде чтобы буквы не вводились на экран? А...

Запрет ввода в консоли - C++
Ребят, привет. Сейчас пишу змейку в консоли. Написано относительно мало. Тут столкнулся с проблемой, что во время игры, когда игрок...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cmath
Модератор
2432 / 1651 / 133
Регистрация: 11.08.2012
Сообщений: 3,289
Завершенные тесты: 5
09.09.2012, 06:36     Запрет ввода символов в поле Edit #2
Вы в какой IDE работаете? В Builder'е? Я так понял вы с Form работаете. Вам нужно написать код внутри обработчика для keypress. (или же для keydown, если я правильно помню). Напишите там соответствующую обработку события и все. Тогда символы из буфера вставить не сможете. Но вы бы таки скинули свой код или скрины, чтобы можно было посмотреть, что вы уже сделали, и что надо добавить или изменить.
P.S. если вам только цифры нужны, то проще и проверять,например, является ли символ цифрой, а все остальные пропускать "мимо ушей":
if( Key == '0'){Edit->Text += '0';}; //как вариант
klynxe
10 / 10 / 4
Регистрация: 07.09.2012
Сообщений: 538
09.09.2012, 11:52  [ТС]     Запрет ввода символов в поле Edit #3
В билдере с формой. Я пока особо ничего не сделал, у меня есть поле Edit в которое надо заблокировать нажатие все кнопок кроме цифр, стрелок, удаления и запятой. Но + к этому оставить добавление в буфер, но что бы при попытке вставить что ли из буфера проходила проверка содержимого, то есть текст в буфере должен быть в виде массива char или еще чего, что бы я смог по 1-му символу в цикле проверить на допустимые символы. А после проверки вставить текст или выдать всплывающую подсказку или в lable написать, что текст большой или содержит недопустимые символы и т.д. Мне весь код не обязательно писать.
1)if( Key == '0'){Edit->Text += '0';}; никак не реагирует на событие он прес, даун и т.д. и хотелось бы проверку через коды символов.
2)Как все таки запихать текст Edit в переменную типа char или в какой-нибудь еще массив?
3)Как переменную из буфера при попытке вставить тоже поместить в какой-нибудь массив для проверки на содержание?
4)Как сделать появляющийся Lable знаю, а как сделать всплывающую подсказку - нет, она вроде на желтом фоне должна появляться?
Подскажите кто-нибудь каким методом можно это осуществить?
cmath
Модератор
2432 / 1651 / 133
Регистрация: 11.08.2012
Сообщений: 3,289
Завершенные тесты: 5
09.09.2012, 12:36     Запрет ввода символов в поле Edit #4
1) Нужно залезть в свойства компонента Edit, там переключится на список событий для Edit (OnCreate и т.п.) Там найти нужное событие и написать код для его обработки. Я конечно могу ошибаться на счет Key, но вроде в такую переменную записывается символ, введенный c клавиатуры (вы опять таки можете заглянуть в справку Builder'а, там подробно про это все расписано). (Событие называется OnKeyPress (OnKeyDown), также взгляните в справке)
2) На счет буфера: там есть функции для копирования и вставки Copy(); и Paste(); наберите в справке Builder'а (я сам уже давно на VC++ переехал, так что не совсем помню, как их использовать в Builder'е)
3) Чтоб перевести текст из Edit'а, вам нужна ANSI строка. Если правильно помню, то надо записать тип как AnsiString, но вы также лучше уточните в справке. (или же сделайте строку char* и попробуйте впихнуть в нее содержимое Edit'а, если компилятор начнет ругаться, то он выдаст вам, как правильно обозвать тип вашей строки)
P.S. со всплывающей подсказкой помочь совсем не могу, изв. Но вроде как должна быть на панели инструментов, а после в свойствах Edit'a надо её прописать.
klynxe
10 / 10 / 4
Регистрация: 07.09.2012
Сообщений: 538
09.09.2012, 13:15  [ТС]     Запрет ввода символов в поле Edit #5
Спасибо, буду пробовать. Я раньше тоже писал на VC++, а сейчас в универе надо в билдере все делать так приходиться на нем учиться.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2012, 13:26     Запрет ввода символов в поле Edit
Еще ссылки по теме:

Запрет ввода чисел - C++
необходимо в калькуляторе сделать запрет ввода числа, через кеу не получается.вот полный код #include "stdafx.h" #include <iostream> ...

Очередной запрет ввода - C++
Можно ли сделать так, чтобы при вводе (cin) программа никак не реагировала на нажатие кнопок? Например игнорировала определенные символы...

Запрет ввода русских букв.... - C++
Ребят подскажите как сделать запрет на использование русских букв в консоли, т.е если вводишь русские буквы жмешь enter и программа выдает...

Запрет ввода в консольном приложении - C++
Здравствуйте! Мне необходимо осуществить следующую задачу: 1) Запретить пользователю ввод положительных чисел. 2) Запретить ввод...

Запрет ввода числа с точкой - C++
Как запретить ввод десятичных чисел? Напрягает, из-за этого прога падает. Плюс, не нашел вариантов проверки на наличие у числа десятичной...

Ошибка ввода символов строки, при количестве символов кратных 8 - C++
Здравствуйте, уважаемые форумчане! Разбираясь с механизмом ввода и динамическим выделением памяти для строк решил написать такой...


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

Или воспользуйтесь поиском по форуму:
cmath
Модератор
2432 / 1651 / 133
Регистрация: 11.08.2012
Сообщений: 3,289
Завершенные тесты: 5
09.09.2012, 13:26     Запрет ввода символов в поле Edit #6
Цитата Сообщение от klynxe Посмотреть сообщение
Спасибо, буду пробовать. Я раньше тоже писал на VC++, а сейчас в универе надо в билдере все делать так приходиться на нем учиться.
Эх... Универ. Там старье нынче-с. У нас тоже Builder на компьютерах в Универе. Благо ноутбуком пользоваться разрешают, а то этот Builder, мягко говоря, устарел.
Yandex
Объявления
09.09.2012, 13:26     Запрет ввода символов в поле Edit
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru