Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как ограничить ввод в TEdit.


Arnold ©   (2004-10-31 11:34:00) 

Вводить можно только цифры


begin...end   (2004-11-01 12:49:00) [1]


> [2] Arnold ©   (31.10.04 12:05)

По событию TEdit.OnChange проверяете текст в цикле по символам на наличие недопустимых символов; если они там есть, то заменяете TEdit.Text на новое значение с помощью StringReplace().


PVOzerski   (2004-11-01 09:25:00) [2]

Только пиши обработчик осторожно: юзер может набрать и вот такое:

1--3+5..ee.10

А если проверять "численность" текста при вводе каждого символа, может получиться неудобство при редактировании. К примеру, хочет юзер ввести отрицательное число, ввел минус - а обработчик "голый минус" числом считать не хочет. Или набрал юзер -4, решил исправить на -5, стер четверку - и опять обработчик недоволен. Я пришел в итоге вот к чему: если речь идет об Edit и т.п. в диалоге не надо пользователю препятствовать вводить что угодно. Но вот при нажатии кнопочки OK, "Применить" и. т. п. делать проверку (например, c помощью StrToFloat).


ghg   (2004-11-01 08:53:00) [3]

было в кладовке здесь, щас на закрыто, но у меня сохранился юнит с подобным едитом
если надо, то пиши


eRoR_rrr   (2004-11-01 04:21:00) [4]

Только цифры, пробел и BackSpace.
Событие OnKeyPress:
if not (Key in ['0'..'9',' ',#8]) then
 begin
   Key:=#0;
 end;


SpyBack   (2004-11-01 00:31:00) [5]

Вот так можно запретить ввод букв, но по аналогии можно и цифр:
кидай на форму ApplicationEvents и 1 edit

на событие onmessage ApplicationEvents пиши:

Handled:=edit1.Focused and (msg.message = wm_Char) and (msg.wParam>=48) and(Msg.wParam<=57)


Anatoly Podgoretsky   (2004-10-31 12:15:00) [6]

Arnold ©   (31.10.04 12:05) [2]
А это уже противоречит первичному вопросу, ты в следующий раз не торопись задавать вопрос, а сначала сформулируй его и подумай раз два три перед отправкой в форум.

И чем тебе пользователи не угодили, пусть вводят, если им так удобнее, лишь бы конечный результат был правильный. Ты же препятствуешь им например копировать из другого места, а потом отредактировать скопированое.


Gero   (2004-10-31 12:11:00) [7]


> Хотелось бы чтобы еще и вещественные и со знаком можно было

А что, существуют вещественные цифры или цифры со знаком?

> Таким образом минусы и запятые тоже не хочет печатать

Это тоже цифры?


Arnold   (2004-10-31 12:05:00) [8]

Хотелось бы чтобы еще и вещественные и со знаком можно было.
Таким образом минусы и запятые тоже не хочет печатать


Gero   (2004-10-31 11:40:00) [9]

SetWindowLong(Edit.Handle, GWL_STYLE, GetWindowLong(Edit.Handle, GWL_STYLE) or ES_NUMBER);

(c) DMClient team


Наверх

Титульная страница Поиск, карта сайта Написать письмо