|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Фильтрация ввода в Edit.text
Добрый день или вечер или утро.
Подскажите пожалуйста момент. Необходимо отфильтровать вводимые пользователем символы в Edit.text Попробовал так: procedure TForm2.Name1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin If key in ['A'..'z'] Then Name1.Text := ''; end; Но зараза печатается первая позиция а остальные фильтруются, то есть печатаем пять фильтруемых символов и в поле Edit показывается только последний. Как же все таки отфильтровать неугодные символы, в данном случае нужно отфильтровать все кроме кириллицы. |
#2
|
||||
|
||||
При использовании Name1.Text := '' если вводимый символ запрещен, то опустошится все поле, а это есть плохо. Вот как надо:
Код:
procedure TForm2.Name1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin If Key in ['A'..'z'] Then Key := #0; end; Последний раз редактировалось KOOL, 21.02.2008 в 20:45. |
#3
|
|||
|
|||
Спс за Key := #0; я понимал что надо работать с KEY, просто не мог понять что ему присвоить и пошел по другому пути.
конечный вариант получился таким: If not (key in ['А'..'а']) Then If key <> #8 Then key := #0; Последний раз редактировалось Gad99, 22.02.2008 в 15:34. |
#4
|
||||
|
||||
а не проще ли объединить вот так?:
Код:
If not (key in ['А'..'а', #8])Then key := #0; |
#5
|
|||
|
|||
Уже обьединил
If not (key in ['А'..'я',#8]) Then key := #0; Мне нужно разрешить только кириллицу. |