Difference between revisions of "IsKeyComboActive"
m (1 revision imported) |
m (1 revision imported) |
||
(One intermediate revision by one other user not shown) | |||
Line 13: | Line 13: | ||
* [[Объекты]] | * [[Объекты]] | ||
* [[Функции общего назначения]]}} | * [[Функции общего назначения]]}} | ||
− | Функция проверяет, активирована ли в данный момент пользователем заданная комбинация клавиш. Комбинация записывается в формате <code>[<Модификаторы>+]<Название клавиши></code>, модификаторами могут выступать слова '''Ctrl''', '''Alt''' и '''Shift''' (к примеру, <code>"Ctrl+Alt+D"</code>). Также можно проверить только состояние клавиши-модификатора, к примеру, <code>IsKeyComboActive("Ctrl")</code>. Для визуального клиента проверяется статус того, что основное окно клиента активно, если оно не активно, функция возвратит 0, вне зависимости от того, активирована для комбинация или нет. | + | Функция проверяет, активирована ли в данный момент пользователем заданная комбинация клавиш. Комбинация записывается в формате <code>[<Модификаторы>+]<Название клавиши>[+...]</code>, модификаторами могут выступать слова '''Ctrl''', '''Alt''' и '''Shift''' и др. (к примеру, <code>"Ctrl+Alt+D"</code>). Также можно проверить только состояние клавиши-модификатора, к примеру, <code>IsKeyComboActive("Ctrl")</code>. Для визуального клиента проверяется статус того, что основное окно клиента активно, если оно не активно, функция возвратит 0, вне зависимости от того, активирована для комбинация или нет. |
== Синтаксис == | == Синтаксис == | ||
Line 20: | Line 20: | ||
</code> | </code> | ||
==== Аргументы ==== | ==== Аргументы ==== | ||
− | * <code>''<Комбинация клавиш (STRING)>''</code> - Строка, описывающая комбинацию клавиш. | + | * <code>''<Комбинация клавиш (STRING)>''</code> - Строка, описывающая комбинацию клавиш. Клавиши разделяются знаком '''+''' и могут быть заданы тремя способами: |
+ | ** Указание на клавишу по имени, принимаются следующие имена: '''Ctrl''', '''Alt''', '''Shift''', '''BackSpace''', '''Tab''', '''Enter''', '''Caps''', '''Esc''', '''Space''', '''PgUp''', '''PgDn''', '''Home''', '''End''', '''Left''', '''Right''', '''Up''', '''Down''', '''Ins''', '''Del'''. | ||
+ | ** Указание с помощью виртуального кода задается в виде <code>#<виртуальный код></code> (к примеру, <code>#112</code> для клавиши ''F1''). | ||
+ | ** Указание с помощью символа или цифры клавиши. | ||
==== Возвращаемое значение ==== | ==== Возвращаемое значение ==== | ||
Возвращает 1, если комбинация активирована (и клиент активен), иначе возвращает 0. | Возвращает 1, если комбинация активирована (и клиент активен), иначе возвращает 0. |
Latest revision as of 19:07, 20 November 2021
IsKeyComboActive (Системные функции) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция проверяет, активирована ли в данный момент пользователем заданная комбинация клавиш. Комбинация записывается в формате [<Модификаторы>+]<Название клавиши>[+...]
, модификаторами могут выступать слова Ctrl, Alt и Shift и др. (к примеру, "Ctrl+Alt+D"
). Также можно проверить только состояние клавиши-модификатора, к примеру, IsKeyComboActive("Ctrl")
. Для визуального клиента проверяется статус того, что основное окно клиента активно, если оно не активно, функция возвратит 0, вне зависимости от того, активирована для комбинация или нет.
Синтаксис
IsKeyComboActive(<Комбинация клавиш (STRING)>):<Комбинация активирована в данный момент, 0 или 1 (INT)>
Аргументы
<Комбинация клавиш (STRING)>
- Строка, описывающая комбинацию клавиш. Клавиши разделяются знаком + и могут быть заданы тремя способами:- Указание на клавишу по имени, принимаются следующие имена: Ctrl, Alt, Shift, BackSpace, Tab, Enter, Caps, Esc, Space, PgUp, PgDn, Home, End, Left, Right, Up, Down, Ins, Del.
- Указание с помощью виртуального кода задается в виде
#<виртуальный код>
(к примеру,#112
для клавиши F1). - Указание с помощью символа или цифры клавиши.
Возвращаемое значение
Возвращает 1, если комбинация активирована (и клиент активен), иначе возвращает 0.
Примеры
//Функцию удобно использовать, к примеру, при печати большого количества таблиц из разных модулей (печатных форм документов и пр.) //Так как модули вызываются постоянно, у пользователя нет возможности прекратить выполнение, оно остановит вызываемый модуль, но // при отсутствии специальных проверок внутри, вслед за ним сразу же загрузится следующий //Использование особой комбинации клавиш для остановки цикла является одним из вариантов разрешения этой ситуации. Message("Удерживайте Ctrl+S, чтобы остановить печать до ее завершения...","I"); While 1 Do ... If IsKeyComboActive("Ctrl+S") Then Message("Печать остановлена!","!"); Break; EndIf; ... EndDo;