Привязка кнопок

Страницы: 1
RSS
Привязка кнопок
 
Подскажите функцию как привязать в скрипте например кнопку  1 на клавиатуре .
Буду очень Благодарен!  8)
 
Здравствуйте,
Имеющимися средствами QLua можно отслеживать нажатия клавиш только на таблицах порожденных LUA скриптом через SetTableNotificationCallback.
Если речь идет об отслеживании нажатий клавиш в основном окне терминала или в операционной системе Windows то это только сторонними средствами на Ваш страх и риск.
 
В основном окне терминала .
На пример если я нажму клавишу 1 на клавиатуре то мне скрипт запущенный в квике выдаст сообщение "Привет!"
 
Цитата
Сергей пишет:
В основном окне терминала .
На пример если я нажму клавишу 1 на клавиатуре то мне скрипт запущенный в квике выдаст сообщение "Привет!"
тогда только сторонними средствами
 
А как же:


function f_cb(t_id,msg,par1,par2) --событие на нажатие клавиш
  if (msg==QTABLE_CHAR) and (par2==19) then --сохранить в CSV файл текущее состояние таблицы нужно нажать комбинацию клавиш Ctrl+S
     CSV(t_id)
  end
  if (msg==QTABLE_CLOSE) then --закрытие окна
     Stop()
  end
end



вот только не пойму как свои клавиши указать и как ее использовать
 
Эта функция внутри функции main()
код клавиши A=1
Пробую так не работает

if msg==QTABLE_CHAR  and par2== 1 then
message('Привет. - ',2)
end
 
Цитата
Сергей пишет:
Пробую так не работает
Сергей,
Еще раз, имеющимися средствами QLua можно отслеживать нажатия клавиш только на таблицах порожденных LUA
То есть это работает только если есть LUA таблица и если окно с ней активно.
Если окно не активно то не работает.
Если LUA таблицы вообще нет, то не работает.
Тот способ который Вы приводите это и есть тот самый о котором я говорю.
Колбек задается функцией SetTableNotificationCallback
 
Цитата
Sergey Gorokhov пишет:
Колбек задается функцией SetTableNotificationCallback
Спасибо Сергей!!
Примерчик не большой подскажете как использовать? SetTableNotificationCallback
 
Код
local bRun, hID = true

local _Callback = function(t_id, msg, par1, par2)
  if msg == QTABLE_CLOSE then bRun = nil
  elseif msg == QTABLE_CHAR then
    SetCell(hID, 1, 1, GetCell(hID, 1, 1).image..string.char(par2))
  end
end

function main()
  hID = AllocTable()
  AddColumn(hID, 1, 'Введите тект:', true, QTABLE_STRING_TYPE, 32)
  CreateWindow(hID)
  SetWindowPos(hID, 600, 300, 200, 60)
  SetTableNotificationCallback(hID, _Callback)
  SetWindowCaption(hID, "Окно ввода текста")
  InsertRow(hID, -1)
  while bRun do sleep(100) end
end

function OnStop()
  bRun = nil
end
Надо делать так, как надо. А как не надо - делать не надо.
 
Спасибо!! Старатель! :D
 
Цитата
Сергей пишет:
function f_cb(t_id,msg,par1,par2) --событие на нажатие клавиш
if (msg==QTABLE_CHAR) and (par2==19) then --сохранить в CSV файл текущее состояние таблицы нужно нажать комбинацию клавиш Ctrl+S
CSV(t_id)
end
if (msg==QTABLE_CLOSE) then --закрытие окна
Stop()
end
end
А где вы взяли этот кусок кода?
Надо делать так, как надо. А как не надо - делать не надо.
 
Здесь на форуме!
вот ссылка:
https://forum.quik.ru/messages/forum10/message7210/topic748/#message7210
:D
Страницы: 1
Читают тему
Наверх