GetAsyncKeyState(Key: Keys): Boolean;
Key. Клавиша, для которой необходимо проверить состояние.
Метод GetAsyncKeyState возвращает состояние клавиши (нажата/не нажата) вне очереди сообщений.
Метод возвращает True, если клавиша, передаваемая посредством параметра Key, (вне зависимости от текущего состояния) была нажата последней.
Для выполнения примера предполагается наличие формы и расположенной на ней кнопки.
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. Если клавиша будет нажата, то процесс будет остановлен до окончания указанного времени.
Для выполнения примера предполагается наличие .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. Если клавиша будет нажата, то процесс будет остановлен до окончания указанного времени.
См. также: