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


Форумы  :: FAQ FoxPro

Как заставить клавишу с "точкой" всегда вводить точку
Дата: 22.03.05 10: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 с данным кодом, чтобы не дублировать его каждый раз при создании нового объекта.



Исправлено: Владимир Максимов, 04.12.06 10:06
Ratings: 0 negative/0 positive


Тема Просмотров Написано Написано
  Controls 3857 Владимир Максимов 01.03.05 21:10
  Как заставить клавишу с "точкой" всегда вводить точку 7229 Владимир Максимов 22.03.05 10:10
  Как заменить сообщение Invalid Date при вводе некорректной даты 9392 Владимир Максимов 02.02.06 00:15


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

On-line: 44 AndyNigmatec Simple777 Дмитрий Петров  and Guests: 41


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