Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 843

/ вопрос открыт /

Здравствуйте, эксперты! Какой надо код ввести в реакцию OnKeyPress для edit чтобы при запуске программа допускала ввод только цифр и символа запятая, а в остальных случаях не реагировала на нажатие клавиши ( попытка ввода букв или символов). Я слышал о таком коде, только не записал))) Помогите кто может.

amigo Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: amigo (статус: 1-ый класс)
Вопрос отправлен: 3 марта 2010, 21:32
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Amidamaru

Здравствуйте, amigo!

if not(key in ['0'..'9',',',#8]) then
  Key:=#0;
Как видно в скобочках указываются символы от 0 до 9 и запятая. #8 это символ BackSpase, если его убрать - BackSpace работать не будет. Также предупреждаю, что ctrl+c, ctrl+v и др сочетания клавиш в этом эдите работать не будут.

Ответ отправил: Amidamaru (статус: 4-ый класс)
Время отправки: 3 марта 2010, 21:59


Мини-форум вопроса

Всего сообщений: 6; последнее сообщение — 4 марта 2010, 20:39; участников в обсуждении: 4.
min@y™

min@y™ (статус: Доктор наук), 3 марта 2010, 21:41 [#1]:

Почему именно при запуске-то?
А во время работы как программа должна реагировать?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
amigo

amigo (статус: 1-ый класс), 3 марта 2010, 21:47 [#2]:

Да, да во время работы))) Оговорился
min@y™

min@y™ (статус: Доктор наук), 3 марта 2010, 21:54 [#3]:

В OnKeyPress отсеивай ненужные символы.
const ValidSymbols = ['0'..'9', ','];
 
// В OnKeyPress: 
if not (Key in ValidSymbols)
  then Key:= #0;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
amigo

amigo (статус: 1-ый класс), 3 марта 2010, 22:00 [#4]:

Благодарю
Егор

Егор (статус: 10-ый класс), 3 марта 2010, 22:16 [#5]:

надо только цифры+запятая или нужен ввод вещественных чисел? если вещественных чисел, то смотрим вопрос 3677
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
Даниил

Даниил (статус: Посетитель), 4 марта 2010, 20:39 [#6]:

да, а если стоит какая-нибудь Delphi 2009, то у Edit есть свойство NumbersOnly: booloean
Be linux... Be free...

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:28
Выполнено за 0.03 сек.