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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.09.2009, 13:41   #1
alexuss88
Новичок
Джуниор
 
Регистрация: 06.09.2009
Сообщений: 2
По умолчанию Delphi 2009 нужна помощь

Перешел в Delphi 2009 с delphi 7 и еще не разобрался с юникодом.
Нужно запретить ввод всех символов кроме кириллицы


Если использовать это, то не вводится вообще ничего((
if not (Key in ['А'..'я', #8, #13]) then key:=#0;

Если так, то только латиница
if not (Key in ['А'..'я','A'..'z', #8, '0'..'9', #32]) then key:=#0;

Помогите пожалуйста кто разбирается!
alexuss88 вне форума Ответить с цитированием
Старый 07.09.2009, 01:30   #2
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Я тоже не сразу привык. Все что тебе нужно знать - это то что теперь по умолчанию все строки и чары - wide, а однобайтные теперь нужно явно указывать - AnsiChar, AnsiString. Это нужно всегда помнить во избежание ошибок. В связи с этим теперь операции с множествами с юникодовыми типами не поддерживаются, компилятор предлагает использовать специальную функцию, можно еще привести к Ansi. Это что касается юникода вообще.

По теме, посмотри что пишет компилятор в предупреждениях, посмотри в отладчике что приходит в функцию и поймешь в чем ошибка.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 07.09.2009, 08:23   #3
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

SysUtils
Код:
function CharInSet(C: AnsiChar; const CharSet: TSysCharSet): Boolean; overload;
function CharInSet(C: WideChar; const CharSet: TSysCharSet): Boolean; overload;
Код:
TSysCharSet = set of AnsiChar;
Цитата:
Use CharInSet to check whether a given character is contained within a set of characters. CharInSet checks whether the C parameter is contained within the CharSet set. C can either be a Unicode or an ANSI character, while CharSet can only be a set of ANSI characters. The function returns True if the character is contained within the set and False if the character is not contained within the set or if the character is Unicode.

Note: We recommend that the TCharacter class (which is Unicode enabled) be used whenever possible to check whether a character enters a certain category, such as digits or letters.
Цитата:
TSysCharSet is a set containing ANSI characters. TSysCharSet is useful when passing a set of characters to various functions that require them. TSysCharSet is primarily used in the CharInSet routine, which detects whether a given character is contained within the set.

Note: You cannot use TSysCharSet to group Unicode characters. This means that TSysCharSet cannot be used to check whether an Unicode character is a part of TSysCharSet.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь с кряком KIS 2009 Inspire Безопасность, Шифрование 7 15.10.2009 00:06
Delphi - нужна помощь Psi_X Помощь студентам 11 05.02.2009 14:59
Нужна помощь на Delphi ВЕКО Помощь студентам 1 19.04.2008 15:48
Нужна помощь по Delphi Виктория 1 Фриланс 5 25.02.2007 21:21