:: Главная :: Решения :: Статьи :: Проект "Русский help" :: Файловый архив :: Фотоальбом :: Ссылки ::
   Л и с о в о д ы   в с е х   с т р а н,  о б ъ е д и н я й т е с ь !!!  


Форумы  :: FAQ FoxPro

Как заставить клавишу с "точкой" всегда вводить точку
Дата: 22.03.05 11:10:35 ОтветитьЦитировать

Вопрос

На альтернативной цифровой клавиатуре (правая часть клавиатуры под клавишей NumLock) есть клавиша с "точкой". Однако она водит именно точку только при английской раскладке клавиатуры, а при русской раскладке клавиатуры вводит запятую. При вводе чисел с дробной частью это создает проблемы. Как можно заставить вводить символ точки вне зависимости от текущей раскладки клавиатуры?

Ответ

В событии KeyPress для Вашего объекта TextBox пишете такой код

LPARAMETERS nKeyCode, nShiftAltCtrl
IF InList(CHR(nKeyCode),'.',',') AND CHR(nKeyCode)<>SET('POINT')
NODEFAULT
DoDefault(ASC(SET('POINT')),nShiftAltCtrl)
*!* или вместо DoDefault в данном случае можно дать такую команду
*!* KeyBoard SET('POINT') PLAIN CLEAR
ENDIF

Все. Теперь при попытке ввода точки или запятой будет автоматически введен символ, который Вы приняли в качестве разделителя целой и дробной части. Даже если это, например, дефис.

Для удобства работы, лучше создать отдельный класс на основе TextBox с данным кодом, чтобы не дублировать его каждый раз при создании нового объекта.



Исправлено 1 раз(а). Последнее : Владимир Максимов, 04.12.06 11:06
Ratings: 0 negative/0 positive


Тема Просмотров Написано Написано
  Controls 4275 Владимир Максимов 01.03.05 22:10
  Как заставить клавишу с "точкой" всегда вводить точку 8370 Владимир Максимов 22.03.05 11:10
  Как заменить сообщение Invalid Date при вводе некорректной даты 10500 Владимир Максимов 02.02.06 01:15


Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

On-line: 2 (Гостей: 2)

© 2006 Fox Club 
Яндекс.Метрика