![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как ограничить ввод в 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