Помогите, пожалуйста, решить следующий трабл!
Есть записи в стандартной таблице Browse ABC C55H. Есть кнопки, которые двигают эти записи вверх-вниз-в начало- в конец.
Надо навесить на эти кнопки горячие клавиши:
– вверх – Shift+Up
- вниз – Shift+Down
- в начало - Ctrl+Shift+Up
- в конец – Ctrl+Shift+Down
На окне списка прописываю соответствующие горящие клавиши (Alert…), а в точке вставки в секции AlertKey пишу что-то вроде:
Case KeyCode()
OF ShiftUp
Select(?MoveUp)
PressKey(EnterKey)
OF ….
……………..
End
Все работает, но….. чтобы еще раз отработать эту комбинацию клавиш, надо сначала отпустить и Shift и Up, и только после этого нажать их заново.
А нужно: удерживая (постоянно) Shift и нажимая периодически на Up, перемещать запись.
Помогите, знающие люди, очень уж сильно и срочно надо!!!
Написал: NewUser(217)
Обработка горячих клавиш!
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- StillZero
- Ветеран
- Сообщения: 454
- Зарегистрирован: 06 Июль 2005, 2:17
- Откуда: Хабаровск
- Контактная информация:
предисловие: легко это не решается хотя в сабклассинге я особо трудного ничего не вижу
необходимо засабклассить лист бокс, в процедуре сабклассинга отлавливать события WM_KEYDOWN - нажатие кнопки, WM_KEYUP - отпустили кнопку
подробнее про сабклассинг можно узнать:
http://www.zero.clarionlife.net/Article ... lass.shtml
http://www.pisoft.ru/verstak/Insider/col_subclass.htm
Написал: PAA(27)
необходимо засабклассить лист бокс, в процедуре сабклассинга отлавливать события WM_KEYDOWN - нажатие кнопки, WM_KEYUP - отпустили кнопку
подробнее про сабклассинг можно узнать:
http://www.zero.clarionlife.net/Article ... lass.shtml
http://www.pisoft.ru/verstak/Insider/col_subclass.htm
Написал: PAA(27)
В принципе (на сколько я понимаю этот самый принцип), для решения данной задачи надо отслеживать момент нажатия и момент отпускания кнопки Shift. При нажатии: loc:Shift = 1, при отпускании: loc:Shift = 0
Case KeyCode()
OF UpKey
IF loc:Shift = 1
Select(?MoveUp)
PressKey(EnterKey)
OF ….
……………..
End
Неужто в Кларионе для отслеживания нажатия и отпускания клавиш (не мышиных) нет никаких-никаких собственных средств? Регион, положенный на лист-бокс мне не поможет? Может что-нибудь из API? Или приговор – жесткий и безапелляционный – сабклассинг?
Написал: NewUser(217)
Case KeyCode()
OF UpKey
IF loc:Shift = 1
Select(?MoveUp)
PressKey(EnterKey)
OF ….
……………..
End
Неужто в Кларионе для отслеживания нажатия и отпускания клавиш (не мышиных) нет никаких-никаких собственных средств? Регион, положенный на лист-бокс мне не поможет? Может что-нибудь из API? Или приговор – жесткий и безапелляционный – сабклассинг?
Написал: NewUser(217)