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

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

17.03.2012, 14:14. Показов 3656. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru