Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 замена символов при вводе в TextBox  [new]
АлександрV
Member

Откуда:
Сообщений: 1
Подскажите пожалуйста, как мне заменить символы при вводе в TextBox на русские, то есть при нажатии клавиши в любом регистре и раскладке (где есть русские буквы), мне необходимо отображение в поле TexBox значений русских букв в верхнем регистре (например если набираю букву q тут же должно отображаться Й, если нажимаю на W или w или ц должно соответственно отображаться Ц и т.д). Пробовал использовать метод keypress, но наверное что-то в нем не доделываю, так как отображения либо нет, либо появляется, но указатель переходит на начало в строке TextBox. Понимаю, что решение где-то близко, но что-то не выходит. Если не трудно помогите.
9 фев 06, 09:55    [2336696]     Ответить | Цитировать Сообщить модератору
 Re: замена символов при вводе в TextBox  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
Переключай раскладку клавы при входе в контрол.
Как? Смотри тут.
9 фев 06, 09:58    [2336706]     Ответить | Цитировать Сообщить модератору
 Re: замена символов при вводе в TextBox  [new]
PaulWist
Member

Откуда:
Сообщений: 2236
посмотри здесь, как автоматически переключить раскладку http://forum.foxclub.ru/read.php?32,177177,177206#msg-177206

Верхний регистр - св-ва контрола Format = !
9 фев 06, 09:59    [2336708]     Ответить | Цитировать Сообщить модератору
 Re: замена символов при вводе в TextBox  [new]
Hel!Riser
Member

Откуда: Нижний Новгород
Сообщений: 972
в txt.InteractiveChange()
cLat='QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>'
cLat=cLat+LOWER(cLat)
cRus='ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ'
cRus=cRus+LOWER(cRus)
this.Value=CHRTRAN(this.Value, cLat, cRus)
соотв cLat & cRus можешь вынести как проперти объекта или формы, кот тока один раз определить, а не каждый раз перещитывать

ЗЫ а если те нужно тока заглавные буквы - то txt.Format='!'
9 фев 06, 10:02    [2336721]     Ответить | Цитировать Сообщить модератору
 Re: замена символов при вводе в TextBox  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Можно и в событии KeyPress. Примерно так:

LPARAMETERS nKeyCode, nShiftAltCtrl
LOCAL lcCharsEng, lcCharsRus
lcCharsEng = "qwertyuiop[]asdfghjkl;'zxcvbnm,."
lcCharsRus = "йцукенгшщзхъфывапролджэячсмитьбю"
IF CHR(m.nKeyCode) $ m.lcCharsEng
	NODEFAULT  
	KeyBoard ChrTran(CHR(m.nKeyCode),m.lcCharsEng,UPPER(m.lcCharsRus)) PLAIN CLEAR  
ENDIF
9 фев 06, 10:37    [2336914]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить