IWinApplication.ProcessMouseMessages

Синтаксис Fore

ProcessMouseMessages;

Синтаксис Fore.NET

ProcessMouseMessages();

Описание

Метод ProcessMouseMessages отправляет запрос на обработку системных сообщений, адресованных приложению.

Комментарии

Вызов метода приводит к проверке очереди системных сообщений клавиатуры и мыши и сообщений, вызывающих перерисовку окна приложения. Если очередь не пуста, то осуществляется немедленная обработка сообщений. После обработки сообщения удаляются из очереди.

Метод может использоваться для прерывания длительных процессов путем обработки нажатых клавиш или щелчков клавишей мыши по компонентам.

Пример Fore

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

Class TESTForm: Form
    Button1: Button;
    Button2: Button;
    Stop: Boolean = False;

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

    Sub StopOnClick(Sender: Object; Args: IMouseEventArgs);
    Begin
        Stop := True;
    End Sub StopOnClick;

End Class TESTForm;

Нажатие на кнопку «Button1» запускает процесс длительностью 60 секунд, во время которого будут обрабатываться системные сообщения мыши. Нажатие на кнопку «Button2» прерывает запущенный процесс. Если процесс запустить без обработки системных сообщений мыши, то его нельзя будет прервать нажатием кнопки  «Button2».

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Ui;

Public Partial Class TESTForm: Prognoz.Platform.Forms.Net.ForeNetForm
    Public Constructor TESTForm();
    Begin
        InitializeComponent();
    End Constructor;
    
    Stop: boolean;
    
    Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
    Var
        d: DateTime;
        WinApp: WinApplication = New WinApplicationClass_2();
    Begin
        Self.BeginOperation("Выполнение");
        d := DateTime.Now.AddSeconds(60);
        While DateTime.Now < d Do
            WinApp.ProcessMouseMessages();
            If Stop Then
                Break;
            End If;
        End While;
        Stop := False;
        Self.EndOperation();
    End Sub;

    Private Sub button2_Click(sender: System.Object; e: System.EventArgs);
    Begin
        Stop := True;
    End Sub;

End Class;

Нажатие на кнопку «Button1» запускает процесс длительностью 60 секунд, во время которого будут обрабатываться системные сообщения мыши. Нажатие на кнопку «Button2» прерывает запущенный процесс. Если процесс запустить без обработки системных сообщений мыши, то его нельзя будет прервать нажатием кнопки  «Button2».

См. также:

IWinApplication