Обработка клавиш в таблице LUA

Страницы: 1
RSS
Обработка клавиш в таблице LUA
 
Подскажите, пожалуйста, я правильно понимаю, что обработать нажатия стрелок (вверх-вниз-влево-вправо) в таблице нельзя? Бакспейс и Ентер обрабатываются, а стрелки нет.Если все же можно, то какие у них коды?
 
Я поискал и не нашёл что-то конкретное. Остаётся попробовать нажимать клавиши и выводить значения для QTABLE_CHAR и QTABLE_VKEY.
Может быть, эти ссылки окажутся полезны:
https://forum.quik.ru/forum1/topic4967/
https://forum.quik.ru/forum10/topic761/

Вот справка по SetTableNotificationCallback:

Задание функции обратного вызова для обработки событий в таблице. В случае успешного завершения функция возвращает «1», иначе – «0».
Внимание:
ВАЖНО! Недопустим вызов функций Clear и DestroyTable для t_id внутри функции обратного вызова f_cb, назначенной на таблицу с данным t_id.

Формат вызова:
NUMBER SetTableNotificationCallback (NUMBER t_id, FUNCTION f_cb)

Для функции:

FUNCTION (NUMBER t_id, NUMBER msg, NUMBER par1, NUMBER par2)

Параметры:
Для SetTableNotificationCallback:
t_id – идентификатор таблицы,
f_cb – функция обратного вызова для обработки событий в таблице.

Для функции:
t_id    – идентификатор таблицы, для которой обрабатывается сообщение,
par1 и par2 – значения параметров определяются типом сообщения msg,
msg    – код сообщения.

Доступные коды событий:
QTABLE_LBUTTONDOWN   – нажата левая кнопка мыши, при этом par1 содержит номер строки, par2 – номер колонки,
QTABLE_RBUTTONDOWN   – нажата правая кнопка мыши, при этом par1 содержит номер строки, par2 – номер колонки,
QTABLE_LBUTTONDBLCLK – двойное нажатие левой кнопки мыши, при этом par1 содержит номер строки, par2 – номер колонки,
QTABLE_RBUTTONDBLCLK – двойное нажатие правой кнопки мыши, при этом par1 содержит номер строки, par2 – номер колонки,
QTABLE_SELCHANGED    – изменение текущей (выделенной) строки, при этом par1 равен номеру новой выделенной строки,
QTABLE_CHAR     – нажата символьная клавиша, при этом par2 содержит код клавиши, par1 – текущую выделенную строку,
QTABLE_VKEY     – нажата клавиша, при этом par2 содержит код клавиши, par1 – текущую выделенную строку,
QTABLE_MBUTTONDOWN   – нажата вниз средняя кнопка мыши, при этом par1 содержит номер строки, par2 – номер колонки,
QTABLE_MBUTTONDBLCLK – двойное нажатие средней кнопки мыши, при этом par1 содержит номер строки, par2 – номер колонки,
QTABLE_LBUTTONUP     – отпущена левая кнопка мыши, при этом par1 содержит номер строки, par2 – номер колонки,
QTABLE_RBUTTONUP     – отпущена правая кнопка мыши, при этом par1 содержит номер строки, par2 – номер колонки,
QTABLE_CLOSE         – закрытие таблицы, при этом par1 и par2 равны нулю.
 
Цитата
Serge123 написал:
QTABLE_VKEY
Спасибо большое за ссылки и мысли.
Все сработало. Нужно было просто использовать QTABLE_VKEY вместо QTABLE_CHAR. Но в заблуждение ввело то, что Tab, Enter и BackSpace обрабатываются через QTABLE_CHAR.

Вопрос можно закрывать.  
 
Цитата
Андрей написал:
Я поискал и не нашёл что-то конкретное.
https://www.google.ru/search?q=%D0%BA%D0%BE%D0%B4%D1%8B%20%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%­D1%88
Всё пройдет. Но это не точно.
Страницы: 1
Читают тему
Наверх