Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2013, 01:56   #1
SeNaT
Пользователь
 
Регистрация: 07.06.2011
Сообщений: 20
Вопрос Edit ввод только русские буквы

Много примеров на эту тему,но все коды не работают.У меня delphi xe
Работает один код
Код:
if (Key<=#192)and(Key<>' ') then key:=#0
Но вот проблема,немогу ввести заглавную русскую букву "А"
SeNaT вне форума Ответить с цитированием
Старый 13.05.2013, 02:36   #2
viks1
человек
Форумчанин
 
Аватар для viks1
 
Регистрация: 11.05.2009
Сообщений: 517
По умолчанию

Цитата:
Сообщение от SeNaT Посмотреть сообщение
Много примеров на эту тему,но все коды не работают.У меня delphi xe
Работает один код
Код:
if (Key<=#192)and(Key<>' ') then key:=#0
Но вот проблема,немогу ввести заглавную русскую букву "А"
пробуй
Код:
if key in (['а'..'я', 'А'..'Я']) then Edit1.Enabled:=true else
key:=#0;
viks1 вне форума Ответить с цитированием
Старый 13.05.2013, 07:03   #3
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

(Key<=#192) #192 - это код буквы 'А'

т.е. вы пишете: если буква "А" или меньше нее, не писать эту букву.
равенство должно быть строгим:
Код:
if (Key<#192)and(Key<>' ') then key:=#0
но это с русскими буквами так получилось, что они от #192 и до конца,
а если нужно было бы разрешить только англ. текст, то

if not (('A'<=Key)and(Key<='z') and (Key=' ')) then key:=#0 ;

Последний раз редактировалось xrob; 13.05.2013 в 07:09.
xrob вне форума Ответить с цитированием
Старый 13.05.2013, 16:14   #4
SeNaT
Пользователь
 
Регистрация: 07.06.2011
Сообщений: 20
По умолчанию

Оба кода не работают.
Символы не вводятсья

Последний раз редактировалось SeNaT; 13.05.2013 в 16:32.
SeNaT вне форума Ответить с цитированием
Старый 13.05.2013, 16:23   #5
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Код:
if not (Char(key) in (['а'..'я', 'А'..'Я'])) then key:=0;
Но лучше делать проверку в OnPress.
Kix.IV вне форума Ответить с цитированием
Старый 13.05.2013, 16:30   #6
SeNaT
Пользователь
 
Регистрация: 07.06.2011
Сообщений: 20
По умолчанию

Kix.IV неработает в тех двух случаях символы вообще не вводяться,ваш метод я уже пробывал,он подходить в версии 7, на xe он не работает
SeNaT вне форума Ответить с цитированием
Старый 13.05.2013, 16:58   #7
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

если "не работает" - включите комп в розетку.
если включен - значит работает, но, возможно не так как вам надо.
вот и изучайте КАК это работает, подробно и пошагово:

наступает ли событие вообще, что приходит в key - ShowMessage(Key);
каковы результаты сравнения (Key>#192)
каковы результаты сравнения (Key<>' ')
выполняется ли общее условие

смотрите как работает и делайте выводы где, что нужно изменить
xrob вне форума Ответить с цитированием
Старый 13.05.2013, 18:04   #8
SeNaT
Пользователь
 
Регистрация: 07.06.2011
Сообщений: 20
По умолчанию

Загвоздка в том,что в delphi xe работает только в ANSI кодировке,метод указание от определённого символа до конечного теперь не канает

Для английской раскладки там отдельно преднозначено выражение ,я уже забыл ,но для русских слов всё это обделили,поэтому я и спрашиваю ,есть ли ещё какой нить обходной путь

Последний раз редактировалось Stilet; 13.05.2013 в 20:09.
SeNaT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод - сделать так, чтобы в Edit можно было вводить только цифры, или на оборот, только буквы BastAngel Общие вопросы Delphi 7 27.04.2012 01:15
Как сделать в Edit Ввод только чисел Pashin Компоненты Delphi 17 26.07.2011 21:12
Русские буквы morgan97 Паскаль, Turbo Pascal, PascalABC.NET 4 10.03.2011 10:15
только русские буквы Dgon777 Microsoft Office Access 6 11.11.2010 22:13