Difference between revisions of "IsKeyComboActive"

From SunFlurry wiki
Jump to: navigation, search
 
m (1 revision imported)
 
(2 intermediate revisions by 2 users 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;