|
|
||||||
Какой код у клавиши "тильда" для OnKeyDown28.07.2011, 21:57. Показов 11319. Ответов 26
Метки нет (Все метки)
Нужно отловить нажатие на клавишу "тильда" в событии OnKeyDown. Как её правильно вычислить? Понятно, что распечатав значение в событии я могу его взять для сравнения. Метод тыка показал, что этот код 192 (0xc0). В файле winuser.h по этому поводу сказано:
0
|
||||||
| 28.07.2011, 21:57 | |
|
Ответы с готовыми решениями:
26
OnKeyDown + клавиши стрелок OnKeyDown реагирует только на одно нажатие клавиши Какой код клавиши FN в ноутбуках |
|
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
|
|
| 29.07.2011, 05:35 | |
|
все нормально. 192 это ж код физической клавиши.
американская раскладка распознает его как '~', русская как 'ё' а сам код 192 он и в Африке останется 192) тут сложней как раз обратная операция - придать нажатию на кнопку с кодом 192 смысл, то бишь, выяснить текущую раскладку, проверить CapsLock, нажат ли Shift и т.д.
1
|
|
|
117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
|
||
| 29.07.2011, 12:43 | ||
|
0
|
||
|
|
||||||||
| 30.07.2011, 08:36 [ТС] | ||||||||
|
Добавлено через 3 минуты Добавлено через 19 часов 17 минут ------------------------------------------------------------- Ещё вопрос. Теперь работа идёт с TEdit'ом. В обработчике OnKeyDown код клавиши приходит в виде WORD со значением 192. В обработчике OnKeyPress код приходит в виде char'а и уже соответствует значению '~' (т.е. приходит код символа, а не код клавиши). Мне хочется отловить нажатие на тильду. Насколько я понимаю, из char'а уже код физической клавиши не получить Почему использую именно OnKeyPress. Без всяких обработчиков нажатия получается так, что если на Edit'е в процессе работы программы нажать Enter, то раздаётся звук, который обычно сопровождает всякие ошибки. Если в OnKeyPress вставить проверку:
Вопрос. Мне нужно прибить звук при нажатии на enter и перехватить нажатие на клавишу тильда. Получается, что для этого нужно сделать одно из двух, только я не знаю как делаются оба этих пункта: - в OnKeyPress получить код клавиши тильда, имея на руках лишь char - научиться подавлять звук от enter'а Предпочтительнее второе
0
|
||||||||
|
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
|
||||||
| 30.07.2011, 18:23 | ||||||
1
|
||||||
|
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
|
||||||
| 30.07.2011, 18:38 | ||||||
|
Во-первых, VCL есть ни что иное как обёртка над WinApi,
во-вторых, код проверял, никакие символы никуда не пропадают, создай пустой проект и проверь с этим кодом, на форму бросил Мемо П.С. Проверял на CBuilder 2010, этой функцией пользуюсь очень часто, глюков не замечал
0
|
||||||
|
|
||
| 30.07.2011, 23:29 [ТС] | ||
|
Добавлено через 3 минуты На коротком примере не глючит. Значит где-то навелось
0
|
||
|
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
|
||||||
| 30.07.2011, 23:46 | ||||||
|
Ну и так, чтобы пофлудить на ночь глядя вот ещё вариации
![]()
1
|
||||||
|
|
||
| 30.07.2011, 23:49 [ТС] | ||
|
Если до кучи ещё расскажешь, что в OnKeyDown написать, чтобы при нажатии на enter звука не было, то будет ваще замечательно
0
|
||
|
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
|
|
| 30.07.2011, 23:50 | |
|
Проблему Entera очень хорошо знаю. Отменить Enter можно только в TKeyPressEvent
0
|
|
|
|
||
| 30.07.2011, 23:51 [ТС] | ||
|
Maluda, может ещё тут что-то умного сможешь сказать? Не работает OnKeyDown на форме fsMDIForm посты 7 и 9
Добавлено через 35 секунд
0
|
||
|
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
|
|
| 30.07.2011, 23:53 | |
|
У тебя по-любому другой контрол захватывает фокус, скорее всего это или TEdit или TMemo
Добавлено через 48 секунд Форма не перехватывает фокус, если он в Edit'о образных контролах
0
|
|
|
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
|
|
| 30.07.2011, 23:56 | |
|
Это про то, что в форме не работает OnKeyDown
0
|
|
|
|
|||
| 30.07.2011, 23:59 [ТС] | |||
|
Добавлено через 1 минуту
0
|
|||
|
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
|
|||||||
| 31.07.2011, 00:05 | |||||||
0
|
|||||||
|
|
|
| 31.07.2011, 00:12 [ТС] | |
|
Не, не то. В последнем посте я пояснял, что у меня куча окон и я не хочу каждый раз в этом учитывать новый контрол в одном из дочерних окон. Думал, что может каким-то макаром можно сделать общим способом.
Хотя я вижу, что в сообщении есть хэндл того контрола, на котором сейчас получено сообщение (Msg.hwnd). По хэнжлу как-то можно понять, что этот хэндл от объекта (окна) типа Edit?
0
|
|
|
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
|
||||||
| 31.07.2011, 00:19 | ||||||
|
В этом обработчике ты можешь получить любое событие, которое проходит в цикле сообщений
твоего приложения, от любого объекта, порождённого от TWinControl, а это TButton, TEdit, TForm и т.д. Добавлено через 2 минуты
0
|
||||||
| 31.07.2011, 00:19 | |
|
Помогаю со студенческими работами здесь
20
прога, которая по нажатой клавише выводит ascii - код символа это клавиши или scan - код самой клавиши. Оператор тильда для binary Конвертировать символ клавиши в код клавиши Из OnKeyDown переопределить Key для OnKeyPress Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|