![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Всем привет!
Пишу что-то вроде программного движка, управляемого консольными командами. Хотелось бы сделать возможность забиндить команды к клавишам. Для этого выделил массив строк BINDLIST, в котором индекс соответствует ASCII-коду клавиши, а элементы - собственно команды (пустые строки "движок" игнорирует). Вызов команды выглядит так: Код:
Увы, это не работает. Движок грамотно обрабатывает саму команду бинда, например, "bind Esc quit", добавляя в массив команду "quit" по индексу 27 (код клавиши Esc), но нажатие клавиши Esc после этого ни к чему не приводит. Если же вынести механизм перехвата в отдельную DLL, то как из нее обращаться к методу Код:
Может, я неправильно оперирую параметрами Code / wParam / lParam? Ne timeas obscurum. |
#2
|
||||
|
||||
![]() Вроде разобрался, дело все-таки было в параметрах:
Код:
(Спасибо NumLock: http://www.delphisources.ru/forum/sh...37&postcount=6) Правда, теперь забавно наблюдать, как движок пытается найти соответствующую команду КАЖДОМУ нажатию клавиш, даже во время набора команды ![]() Ne timeas obscurum. |
#3
|
||||
|
||||
![]() Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Lothlorien (07.10.2016)
|
#4
|
||||
|
||||
![]() Да, я на время отображения формы консоли отключаю перехват, а после закрытия включаю заново; вроде получилось то, что хотел
![]() Спасибо, изучу исходник, пригодится ) Ne timeas obscurum. |