Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
9 / 9 / 0
Регистрация: 14.02.2010
Сообщений: 126

Проверка на символы. В Edit сделать ограничение на цифры и точку и запятую.

17.03.2012, 14:14. Показов 3700. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Необходимо в Edit'ах сделать ограничение на цифры и точку и запятую.
Обрабатываю событие по нажатию Key. В функции ставлю условие:
C++
1
2
3
4
5
6
7
8
9
if ((Key<>'0'..'9')&&(Key<>#8)){
        if((Key == '.')||(Key == ','))
              Key=',';
        else
        {
              ShowMessage("NUMBERS");
              return;
        )
}
Но вот не знаю, как описать
А) Цифры. Можно по одной, конечно, но думаю некрасиво выйдет.
Б) Backspace - номер в Делфи такой кажется, как это будет в билдере?
В) Как вообще можно предотвратить вставку второй точки/запятой в поле? КОнечно, можно какой-нибудь check придумать. Но нет ли своего средства здесь?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.03.2012, 14:14
Ответы с готовыми решениями:

Как сделать ограничение на вводимые символы в поле Edit
Всем привет, изучал Дельфи еще в универе, несколько лет назад, и сейчас решил наверстать знания и... безуспешно :( вопрос такой, как...

Как сделать так, чтобы в строку редактирование (edit) можно было ввести только цифры и запятую?
Недавно начал изучать делфи, У меня вопрос, как можно сделать так чтобы в строку редактирования можно было вводить только числа

Изменить запятую на точку в Edit
Как? Очень надо. И если можно с примером.. Заранее спасибо.

6
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
17.03.2012, 16:55
C++
1
2
3
4
5
6
7
8
9
Set < char, 0, 255 > Dig;
 if ( ! (Dig << '0' <<'1' << '2' << '3' <<'4' << '5'
             << '6' << '7'<< '8' << '9'<<'.'<<','<<'\b').Contains(Key))
 
 if ( ! Dig.Contains(Key))
    {
      Application->MessageBox("Â ýòî ïîëå, íåîáõîäèìî ââîäèòü òîëüêî öèôðû!!!!!!","Âíèìàíèå",MB_ICONWARNING);
      Key = 0;
    }
1
9 / 9 / 0
Регистрация: 14.02.2010
Сообщений: 126
17.03.2012, 17:36  [ТС]
Спасибо. Все правда работает, жаль что по одному пришлось вбивать.
Единственное - как заменить в таком случае точку на запятую?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
17.03.2012, 17:45
Цитата Сообщение от Eugene THE BEST Посмотреть сообщение
Единственное - как заменить в таком случае точку на запятую?
Внизу допиши

C++
1
2
3
4
 switch(Key)
    {
     case '.': Key = ','; break;
    }
1
 Аватар для QVO
652 / 462 / 80
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
17.03.2012, 22:21
Eugene THE BEST,
C++
1
2
3
4
5
6
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
        if ( isdigit(Key) || Key == '.' || Key == ',' )
        Key = 0;
}
//---------------------------------------------------------------------------
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
18.03.2012, 00:15
Цитата Сообщение от Eugene THE BEST Посмотреть сообщение
Б) Backspace - номер в Делфи такой кажется, как это будет в билдере?
VK_BACKSPACE
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
18.03.2012, 00:36
Цитата Сообщение от rangerx Посмотреть сообщение
VK_BACKSPACE
Можно и так

C++
1
<<'\b'
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.03.2012, 00:36
Помогаю со студенческими работами здесь

Проверка слов написанных через запятую в Edit
Как реализовать проверку слов написанных через запятую в Edit, должно в итоге работать как этот кусок кода, в данный момент у меня то что...

Как будет выглядеть регулярное выражение, чтобы была возможность вводить только цифры + запятую и точку
Подскажите, пожалуйста, как будет выглядеть регулярное выражение, чтобы была возможность вводить только цифры + запятую и точку. И можно ли...

Ограничение ввода в Edit (только цифры)
Народ подскажите пожалуйста. У меня на форме есть Edit, с этого Edit в таблицу БД забивает стоимость блюда. подскажите, как сделать так,...

Как сделать так, чтобы воспринимало и точку и запятую
Как можно сделать функцию, чтобы для чисел с плавающей точкой я могла ввести и 8,5 и 8.5.

В текстовом файле заменить точку на запятую, а запятую на многоточие
Доброго времени суток! есть задание: в текстовом файле заменить точку на запятую, а запятую на ...(три точки) как открыть файл знаю, а вот...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа в КА2. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru