Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.02.2008, 20:23
Gad99 Gad99 вне форума
Новичок
 
Регистрация: 21.02.2008
Адрес: мурманск
Сообщения: 72
Репутация: 10
По умолчанию Фильтрация ввода в 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  
Старый 21.02.2008, 20:43
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

При использовании 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  
Старый 22.02.2008, 15:18
Gad99 Gad99 вне форума
Новичок
 
Регистрация: 21.02.2008
Адрес: мурманск
Сообщения: 72
Репутация: 10
Хорошо

Спс за Key := #0; я понимал что надо работать с KEY, просто не мог понять что ему присвоить и пошел по другому пути.
конечный вариант получился таким:
If not (key in ['А'..'а']) Then If key <> #8 Then key := #0;

Последний раз редактировалось Gad99, 22.02.2008 в 15:34.
Ответить с цитированием
  #4  
Старый 22.02.2008, 16:10
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

а не проще ли объединить вот так?:
Код:
If not (key in ['А'..'а', #8])Then
  key := #0;
Но в этом случае(Как и в твоем) нельзя будет ввести ничего, кроме латиницы и BackSpace. Если тебе НЕ нужна латиница то нужен мой первый вариант.
Ответить с цитированием
  #5  
Старый 22.02.2008, 16:48
Gad99 Gad99 вне форума
Новичок
 
Регистрация: 21.02.2008
Адрес: мурманск
Сообщения: 72
Репутация: 10
Лампочка

Уже обьединил
If not (key in ['А'..'я',#8]) Then key := #0;
Мне нужно разрешить только кириллицу.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:12.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter