|
|
|
Символ последней нажатой клавиши
|
|||
|---|---|---|---|
|
#18+
Как получить символ последней нажатой клавиши? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2007, 17:30 |
|
||
|
Символ последней нажатой клавиши
|
|||
|---|---|---|---|
|
#18+
Если правильно понял то его возвращает функция lastkey() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2007, 17:34 |
|
||
|
Символ последней нажатой клавиши
|
|||
|---|---|---|---|
|
#18+
LASTKEY возвращает целое число последней нажатой клавиши. Но не символ. Хорошо, а с этого целого числа можно получить символ который ему соответсвует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2007, 17:45 |
|
||
|
Символ последней нажатой клавиши
|
|||
|---|---|---|---|
|
#18+
В данной ситуации мне нужно ограничить ввод текста символами A-Z,0-9,_. Для этого я создал таблицу этих символов: CREATE CURSOR CurChr (fChr C) INDEX ON fChr TAG tChr SET ORDER TO TAG tChr FOR ni=0 TO 57 INSERT INTO CurChr (fChr) VALUES (chr(ni)) ENDFOR FOR ni=65 TO 90 INSERT INTO CurChr (fChr) VALUES (chr(ni)) ENDFOR INSERT INTO CurChr (fChr) VALUES (chr(95)) FOR ni=97 TO 122 INSERT INTO CurChr (fChr) VALUES (chr(ni)) ENDFOR FOR ni=192 TO 255 INSERT INTO CurChr (fChr) VALUES (chr(ni)) ENDFOR и в InteractiveChange обекта text делаю следующее: LOCAL cThis, nLen, cText cThis=ALLTRIM(This.Value) nLen=LEN(cThis) cText=RIGHT(cThis,nLen-IIF(nLen=1,0,1)) IF !SEEK(cText,[CurChr]) ThisForm.ShowError('Неверный символ в имени поля') ENDIF но так не совсем коректно определяет последний нажатый символ. И надо чтоб если символ не правельной, то его ввод отменялся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2007, 18:00 |
|
||
|
Символ последней нажатой клавиши
|
|||
|---|---|---|---|
|
#18+
Код: plaintext CHR() преобразовывает код символа в символ, но LASTKEY() может давать отрицательные значения (Ins, End и т.п.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2007, 18:20 |
|
||
|
Символ последней нажатой клавиши
|
|||
|---|---|---|---|
|
#18+
Такую обработку лучше делать в методе KeyPress(), где параметер tnkeycode тот же lastkey() но по команде NODEFAULT символ не наберется в поле ввода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2007, 18:23 |
|
||
|
Символ последней нажатой клавиши
|
|||
|---|---|---|---|
|
#18+
shantonLASTKEY возвращает целое число последней нажатой клавиши. Но не символ. Хорошо, а с этого целого числа можно получить символ который ему соответсвует?Преобразование точно такое же, как и в INKEY() (в хелпе по INKEY() приведена таблица), только вот не помню, за небольшими исключениями или вовсе без исключений, а исключения - у READKEY() Кстати, использовать и то, и другое, и третье уже очень давно немодно. Да и не нужно. ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2007, 21:49 |
|
||
|
Символ последней нажатой клавиши
|
|||
|---|---|---|---|
|
#18+
время идет а все по старому ) и это правильно ) если речь идет о вводе текста в текстбокс, то я бы сделал немного по другому без курсора и сика ... во-первых все буквы в алфавите упорядочены, как и цифры поэтому курсора не надо ) нужно юзать знаки больше - меньше и комбинации And - or и все получиться во-вторых если это все же текстбокс - то у него есть свои методы определения позиции курсора ввода. Уж извените в последнее время не практикую ))) , но если напрячся то selstart кажеться далее берем substr и получаем сивол все в методе интерактивчейндж в-третьих (это личная позиция) не надо насиловать юзера ОНО должно давить клавиши и не думать о регистре, раскладке клавы и прочих докучливых, скучных мелочах ) поэтому вспоминаем функцию (мне лень(м.б. strtran)) которая преобразует символы из одного набора в другой (там два параметра= два набора ) и пусть оно давит клавиши ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2007, 00:24 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34520302&tid=1589360]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
8ms |
get forum data: |
4ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 360ms |

| 0 / 0 |
