![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Vetlblya |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 3.6.2009 Репутация: нет Всего: нет |
пишу программу на Delphi7 в системе Vista на работе и XP дома. Все названия и весь текст на латинеце. Есть обработчик событий Edit3Change. В этом обработчике проверяю пишет юзер на латинеце или на непойми каким языком. Проверка идет по коду символа в системе анси.
И вот подумалось, а может быть у пользователя другая система кодировки, например юникод. я проверяю символ по коду анси, а пользователь-то печатает юникодом. и получится что он печатает бред, но значения всерно вставятся... или я ошибаюсь? и у нас и в Австралии и США моя проверка в Edit3Change будет работать корректно? а если не корректно, то как сделать ее универсальной для всех кодировок? |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Тебе нужно юникодные компоненты и полностью использовать не String, а WideString. Ну или Delphi 2010.
|
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Что значит другая система? У тебя программа принимает ANSI, значит и ввод с клавиатуры будет именно в ANSI-кодировке. -------------------- |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
||||
|
||||
Vetlblya |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 3.6.2009 Репутация: нет Всего: нет |
UnicodeString подойдет? |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Не знаю, почитай доки про UnicodeString.
|
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Я вопрос не понял.
Если нужно в элементе ввода отфильтровать латиницу, то unicode тут вообще не нужен. Проверяйте символ на вхождение 'A'..'Z', 'a'..'z' - и не важно, какой он у вас (ANSI/Unicode) и на каком языке вводит пользователь. Если же вопрос в том, что пользователь должен "смочь" ввести произвольный текст - то, однозначно, D2009 и выше (ну, если сильно хочется D7, то можно TNT Controls). Добавлено через 1 минуту и 50 секунд Почитать про строки (раздел "Delphi 2009 и выше"). -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Если ты пишешь на Delphi7, то ни о каком юникоде речи не идёт.
Пользователь может вводить в edit только в ANSI. А прочий язык уже зависит от параметров системы и установленного в твоей программе шрифта и чарсета. Вобщем все символы до #127 - латиница, цифры и т.п. Они неизменны. Выше #127 зависят от языка системы или чарсета - то есть непоймикакойязык. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |