Точка-разделитель десятых долей в textbox-ах

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

Точка-разделитель десятых в textboxах

В текстовых полях на форме, где есть десятые доли не печатается разделяющая запятая с числовой клавиатуры, если активная раскладка русская. Если же текущая раскладка английская, то такой проблемы не возникает. В бухгалтерских программам (да и во всех других русскоязычных), где в большинстве своем используется русский язык, постоянно переключаться на английский язык неудобно. Есть несколько решений этой проблемы ...

1) самая простая ... точка есть рядом с правым шифтом, вполне работоспособная ... но ни один бухгалтер на такое не купится 😉
1.1) на WinNT4 такой проблемы нет в принципе, по крайней мере на Server

2) посложнее 😉 ... в сетах ставим set point to ',', теперь на русском языке разделитель печатается, но на английском не печатается ... если нет нужды переключаться с русского на английский, то вполне рабочий метод. Но иногда винды сами крутят активную раскладку как хотят, и этот метод не подходит ...

3) можно сделать новый класс на основе textbox, в котором в методе keypress заменять запятую на точку:
if nkeycode=44
keyb'.'
endif

метод годится, если вы только начали делать программу ...

4) если у вас уже есть готовая программа с сотнями текстбоксов и второй способ не подходит, то можно ПОСТОЯННО сделать активной РУССКУЮ раскладку и написать тот же set point to ','. Постоянно сделать активной раскладкой русскую можно с помощью winAPI ... на каждую форму ставим таймер, интервал по выбору, но что-то около .1 сек. в событий timer пишем:
DECLARE INTEGER LoadKeyboardLayout IN win32api STRING, INTEGER
=LOADKEYBOARDLAYOUT("00000419",1) && Ru

5) можно поменять файл kbdru.dll в виндах, но счас версий виндов раных как китайцев, поэтому что стоит у заказчика неизвестно. Да и корежить винды - нехорошо 🙂 и так сами чуть не падают ...

Ну вроде и все, что вспомнил и увидел 🙂 Если кто-нибудь знает как еще, пишите iron@serov.ru

Автор: Sergey
0

Автор публикации

не в сети 23 года

Pyresev

0
Комментарии: 0Публикации: 1Регистрация: 27-05-2001
Оставить комментарий
Авторизация
*
*
Генерация пароля