Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];

Вниз

Decimal Separator   Найти похожие ветки 

 
kaif ©   (2004-05-26 03:33) [0]

Справа на клавиатуре есть точка. Когда текущий язык клавиатуры  русский, эта точка понимается как DecimalSeparator (как запятая). Если текущий язык английский, то понимается, как точка.
 Точка в качестве "точки" для ввода текста из этой части клавиатуры обычно не юзается. То есть я так понимаю, что что-то здесь глупо как-то изначально... Хочется, чтобы точка среди цифр всегда воспринималась, как DecimalSeparator. То есть как запятая при русских региональных настройках, если в них DecimalSeparator - запятая...
 Может я сумбурно выражаюсь, но смысл вопроса, я думаю понятен...
 Кто как с этим боролся?
 Существует ли общепринятое нормальное решение?


 
Fay ©   (2004-05-26 04:31) [1]

С этим не надо бороться - это нормально.
Что именно тебе мешает?


 
REP   (2004-05-26 06:43) [2]

If key="." Then Key=Decimalseparator


 
Reindeer Moss Eater ©   (2004-05-26 08:50) [3]

if ((key = ".") or (key = ",")) and (key <> DecimalSeparator) then key := DecimalSeparator;


 
Sandman25+1   (2004-05-26 08:58) [4]

if Key in [".",","] then
 Key := DecimalDeparator


 
Mim1 ©   (2004-05-26 09:03) [5]

Можно эту проблемму попытаться побороть глобально? путем замены, одного из пареметров сообщений wm_key???. Где нибудь в application.onmessage.


 
Sandman25+1   (2004-05-26 09:09) [6]

[5] Mim1 ©   (26.05.04 09:03)

Не стоит использовать Application.OnMessage без особой нужды ИМХО. Для "глобального" решения пишется наследник TCustomEdit, который перекрывает DoKeyPress


 
kaif ©   (2004-05-26 19:06) [7]

Мне нужно глобально. Я не могу везде обработчики вешать. Видимо, придется это все пихать в предков каждого контрола... Не нравится мне это.
А через скан-коды клавиатуры или virtual keys отличить точку в правой части (среди цифр) от "законной" точки можно? Или это то же самое в сообщениях Windows?


 
Vlad ©   (2004-05-26 19:12) [8]


> Мне нужно глобально.

Application.OnMessage не поможет ?


 
Vlad ©   (2004-05-26 19:14) [9]

Хотя, это было бы не совсем правильно...


 
Тимохов ©   (2004-05-26 19:16) [10]

я в итоге сделать проверкой и заменой на decimalseparator.
но у меня все предки свои - т.е. мне было проще.


 
kaif ©   (2004-05-26 23:42) [11]

Всем спасибо. По крайней мере джентльменский набор решений ясен. Странно, почему вообще так сделана это точка справа... видимо проблема в том, что все раскладки клавиатуры независимы друг от друга и системе все равно, какое множество раскладок в данный момент имеется. А какой-то очень умный товарисч с самого начала заложил в русские региональные настройки запятую в качестве DecimalSeparator по умолчанию... Видимо тот же товарищ, что поставил букву Ё особняком. Умный шибко был чел.


 
Игорь Шевченко ©   (2004-05-27 12:48) [12]


> Странно, почему вообще так сделана это точка справа.


У наших заказчиков операторы этой кнопкой очень активно пользуются, потому как вводят суммы пользуясь правой частью клавиатуры, одной рукой.


 
Danilka ©   (2004-05-27 13:00) [13]

[12] Игорь Шевченко ©   (27.05.04 12:48)
Имеется ввиду другое. То, что, е едиторе будет точка либо запятая зависит от текущей раскладки клавиатуры, а не от выбранных региональных настроек в системе.

Впрочем, о таком поведении серой точки я только из этой ветки узнал. Операторши, как правило, языки не переключают, у них всегда русский.
Так что, не думаю, что имеет смысл тратить на "лечение" этого время.


 
Anatoly Podgoretsky ©   (2004-05-27 13:33) [14]

kaif ©   (26.05.04 23:42) [11]
Этому товарищу уже много сотен лет


 
kaif ©   (2004-05-27 20:57) [15]

Вот Danilka ©   (27.05.04 13:00) [13]

сумел сформулировать то, что я хотел сказать так сумбурно:

То, что, в едиторе будет точка либо запятая зависит от текущей раскладки клавиатуры, а не от выбранных региональных настроек в системе.

 Если это побороть на уровне обработки оконных сообщений конкретного приложения - было бы неплохо. Я еще туда не лез, но сдается мне, что все будет печально и у обих точек один и тот же виртуальный код...
 Если кто-то знает, что это не так - буду очень благодарен за этот бит информации. Это сэкономило бы мне время...
 К тому же не только мне одному может быть это интересно.


 
Anatoly Podgoretsky ©   (2004-05-27 22:37) [16]

VK_DECIMAL кажется относится только в цифровой клавиатуре, а вот что по нему будет затем получаться будет зависеть от раскладки, текущую раскладку всегда можно узнать.


 
kaif ©   (2004-05-28 01:20) [17]

2 Anatoly Podgoretsky
Спасибо! Я посмотрю.

Вот, нашел в Help!!!
Действительно,
Virtual Keys:

VK_NUMPAD0 0 key (numeric keypad)
VK_NUMPAD1 1 key (numeric keypad)
VK_NUMPAD2 2 key (numeric keypad)
VK_NUMPAD3 3 key (numeric keypad)
VK_NUMPAD4 4 key (numeric keypad)
VK_NUMPAD5 5 key (numeric keypad)
VK_NUMPAD6 6 key (numeric keypad)
VK_NUMPAD7 7 key (numeric keypad)
VK_NUMPAD8 8 key (numeric keypad)
VK_NUMPAD9 9 key (numeric keypad)

VK_MULTIPLY Multiply key (numeric keypad)
VK_ADD Add key (numeric keypad)
VK_SEPARATOR Separator key (numeric keypad)
VK_SUBTRACT Subtract key (numeric keypad)
VK_DECIMAL Decimal key (numeric keypad)
VK_DIVIDE Divide key (numeric keypad)

Действительно коды с "цифровой клавиатуры" - особенные и наверно что-то можно предпринять. Надо подумать.


 
kaif ©   (2004-05-31 19:24) [18]

Перехватить нажатие точки на цифровой клавиатуре я смог при помощи события Application.OnMessage (WM_KEYDOWN, VK_DECIMAL).
 Но сымитировать нажатие клавиши "," никак не смог.
 Вот сымитировать в обоих случаях (при русской и английской раскладке) нажатие клавиши "." смог, а "," - нет.
 Дурдом какой-то...
 :(



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.035 c
1-1085823911
Глеб
2004-05-29 13:45
2004.06.13
Завершение чужой программы после её запуска


4-1084187836
X9
2004-05-10 15:17
2004.06.13
Заменитель Explorer а


6-1082666029
andrysha1
2004-04-23 00:33
2004.06.13
почему когда я использую IdUDPClient, IdUDPServer,IdTCPServer


8-1080807007
Videobaton
2004-04-01 12:10
2004.06.13
Работа с видеокртой


6-1082642467
dark2004
2004-04-22 18:01
2004.06.13
Помогите органиовать поддержку Perl на моем Webсервере





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский