|
|
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
подскажите простой способ перекодирования символов набранных в "неправильной" раскладке клавиатуры. например, когда юзер набирает текст глядя на кириллические символы клавы, а раскладка включена EN, а не RU. и наоборот. мне в голову приходит только один вариант - сделать константные таблицы и по ним искать соответствующие символы в другой раскладке. есть ещё способы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 12:40:49 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 12:58:22 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
wadman https://msdn.microsoft.com/en-us/library/windows/desktop/ms646307.aspx чо-то лыжи не едут :( Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 13:30:36 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
не фурычит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 14:13:36 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
ЙЦУКЕНQWERTY Код: pascal 1. 2. 3. 4. Откуда такие значения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 14:15:34 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
Поставь бряк в этом место и посмотрю на ЙЦУКЕНQWERTY Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 14:16:09 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
Ставь себе SynEdit. Там есть сабжевая фича. Удобно, чо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 14:20:09 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
ЙЦУКЕНQWERTY, procedure TForm1.Button1Click(Sender: TObject); const CEnglish = $04090409; CRussian = $04190419; var VK: Cardinal; Scan: Cardinal; Res: Integer; LBuf: array[0..3] of Char; LStates: TKeyboardState; begin VK := Ord('Q'); Scan := MapVirtualKey(VK, MAPVK_VK_TO_VSC); FillChar(LStates[0], Length(LStates) * SizeOf(LStates[0]), 0); Res := ToUnicodeEx(VK, Scan, LStates, @LBuf[0], Length(LBuf), 0, CRussian); if Res > 0 then Msg(LBuf); Res := ToUnicodeEx(VK, Scan, LStates, @LBuf[0], Length(LBuf), 0, CEnglish); if Res > 0 then Msg(LBuf); end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 14:20:26 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
ЙЦУКЕНQWERTY, Забыл теги :(( Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 14:21:02 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
wadmanПоставь бряк в этом место и посмотрю на ЙЦУКЕНQWERTY Код: pascal 1. дык именно так и сделал. получил $04190419 и $04090409 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 14:25:59 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
wadmanОткуда такие значения? Хм... Всегда считал, что $409 достаточно... В ресурсах такой ид, смена локали - аналогично. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 14:26:09 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Код: pascal 1. 2. 3. у меня делфи не юникодная ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 14:30:15 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Код: pascal 1. ToAsciiEx тогда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 14:35:02 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
сейчас пощупаем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 14:38:42 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
ЙЦУКЕНQWERTYу меня делфи не юникодная И что? Ну замените _Vasilisk_ Код: pascal 1. на Код: pascal 1. Все ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 14:40:16 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
заменил ToUnicodeEx на ToAsciiEx. всё работает!! :) СПАСИБО, _Vasilisk_ и wadman ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 14:46:58 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
эх, рано радовался... для кодов {}:"<> кириллические симбионты ХЪЖЭБЮ не находятся. есть у кого-нить идеи? код Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 17:21:01 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
ЙЦУКЕНQWERTYмне в голову приходит только один вариант - сделать константные таблицы и по ним искать соответствующие символы в другой раскладкенапомни, почему не был выбран этот вариант?)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 18:27:38 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
fd00ch, дык не кошерно же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 18:33:46 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
ЙЦУКЕНQWERTYесть у кого-нить идеи?Есть. { это Shift + [ И если скан-код { скорее всего определяется правильно (хотя не факт, нужно смотреть), то в ToAsciiEx передаются в LStates нули. Следовательно ни одна клавиша больше не нажата. А скан код { совпадает со скан кодом [ и соответствует символу х в русской раскладке. Аналогичную картину Вы увидите при работе с верхним регистром. Попробуйте как-то так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 23:23:36 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
А вообще, если Вы работаете не с текстом, а с клавиатурой, то вместо _Vasilisk_ Код: pascal 1. пишите Код: pascal 1. и будет Вам счастье без всяких проверок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 23:27:49 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ЙЦУКЕНQWERTYесть у кого-нить идеи?Есть. { это Shift + [ И если скан-код { скорее всего определяется правильно (хотя не факт, нужно смотреть), то в ToAsciiEx передаются в LStates нули. Следовательно ни одна клавиша больше не нажата. А скан код { совпадает со скан кодом [ и соответствует символу х в русской раскладке. Аналогичную картину Вы увидите при работе с верхним регистром. Попробуйте как-то так Код: pascal 1. 2. 3. 4. 5. во! отличная идея! СПАСИБИЩЕ!!! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 12:08:30 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
всё оказалось и проще, и совсем не так как предполагалось... 1. массив TKeyboardState в данном контексте не влияет на результат никак. 2. скан-код нафиг не нужен (в данном конкретном случае) 3. нужен КОРРЕКТНЫЙ код виртуальной клавиши (virtual-key code) 4. MapVirtualKey в данном случае не годится, нужно использовать VkKeyScan. окончательный рабочий вариант функции: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 18:03:52 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
ЙЦУКЕНQWERTY Код: pascal 1. За использование неинициализированной переменной можно сильно отгрести ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 19:05:34 |
|
||
|
таблица соответствия QWERTY и ЙЦУКЕН
|
|||
|---|---|---|---|
|
#18+
ЙЦУКЕНQWERTY Код: pascal 1. 2. Вот же любите вы раскладывать грабли VkKeyScan functionReturn value Type: SHORT If the function succeeds, the low-order byte of the return value contains the virtual-key code and the high-order byte contains the shift state, which can be a combination of the following flag bits. Return valueDescription1Either SHIFT key is pressed. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 19:12:09 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=124&tid=2041528]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
57ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 362ms |

| 0 / 0 |
