IWinApplicationClass.GetAsyncKeyState

Синтаксис

GetAsyncKeyState(Key: Keys): Boolean;

Параметры

Key. Клавиша, для которой необходимо проверить состояние.

Описание

Метод GetAsyncKeyState возвращает состояние клавиши (нажата/не нажата) вне очереди сообщений.

Комментарии

Метод возвращает True, если клавиша, передаваемая посредством параметра Key, (вне зависимости от текущего состояния) была нажата последней.

Пример Fore

Для выполнения примера предполагается наличие формы и расположенной на ней кнопки.

Class TESTForm: Form
    Button1: Button;

    Sub StartOnClick(Sender: Object; Args: IMouseEventArgs);
    Var
        d: DateTime;
    Begin
        Self.BeginOperation("Выполнение");
        d := DateTime.AddSeconds(DateTime.Now, 60);
        While DateTime.Now < d Do
            If WinApplication.GetAsyncKeyState(Keys.Escape) Then
                Break;
            End If;
        End While;
        Self.EndOperation;
    End Sub StartOnClick;

End Class TESTForm;

Нажатие на кнопку запускает процесс длительностью 60 секунд, во время которого будет проверяться состояние клавиши ESCAPE. Если клавиша будет нажата, то процесс будет остановлен до окончания указанного времени.

Пример Fore.NET

Для выполнения примера предполагается наличие .NET-формы, на которой расположена кнопка. Форма установлена в качестве объекта запуска для .NET-сборки.

Imports Prognoz.Platform.Interop.Ui;

Public Partial Class TESTForm: Prognoz.Platform.Forms.Net.ForeNetForm
    Public Constructor TESTForm();
    Begin
        InitializeComponent();
    End Constructor;
    
    Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
    Var
        d: DateTime;
        WinAppCls: WinApplicationClass = New WinApplicationClassClass();
    Begin
        Self.BeginOperation("Выполнение");
        d := DateTime.Now.AddSeconds(60);
        While DateTime.Now < d Do
            If WinAppCls.GetAsyncKeyState(Prognoz.Platform.Interop.Forms.Keys.ksEscape) Then
                Break;
            End If;
        End While;
        Self.EndOperation();
    End Sub;

End Class;

Нажатие на кнопку запускает процесс длительностью 60 секунд, во время которого будет проверяться состояние клавиши ESCAPE. Если клавиша будет нажата, то процесс будет остановлен до окончания указанного времени.

См. также:

IWinApplicationClass