zoukankan      html  css  js  c++  java
  • application跟消息相关的东东

    使用Tapplication的onmessage事件来处理消息.指派一个过程给ONMESSAGE,当应用程序从消息队列中取出一条消息,并准备处理该消息时,就调

    用这个过程.应用在WINDOWS处理这条消息前,调用这个事件处理过程.application.onmessage事件处理过得是TMessageEvent类型.
    procedure someobject.appmessagehandler(var msg:tmsg;var hancled:boolean);
    可以从组件板中选择TAPPLICATIONEVENTS组件,从而创建一个ONMESSAGE事件处理过程.
    ONMESSAGE的唯一限制就是它能处理的消息只能是从消息队列中取出的消息,而不能处理应用程序中直接发给WINDOWS窗体过程的消息

    Application.ProcessMessages
    //如果有这样一个循环, 是非常可怕的; 因为它完不了, 你得等着.
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: Integer;
    begin
      for i := 0 to MaxInt do
      begin
        Text := IntToStr(i);
      end;
    end;
    --------------------------------------------------------------------------------

    //即使这样也无济于事, 因为在循环期间你执行不了 Button2Click
    var
      b: Boolean;

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: Integer;
    begin
      b := True;
      for i := 0 to MaxInt do
      begin
        if b then Text := IntToStr(i) else Exit;
      end;
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    begin
      b := False;
    end;
    --------------------------------------------------------------------------------

    //如果在循环期间...
    for i := 0 to MaxInt do
      begin
        if b then Text := IntToStr(i) else Exit;
        {看看还有其他什么事情发生}
      end;
    --------------------------------------------------------------------------------

    //Application.ProcessMessages 就是干这个的!
    var
      b: Boolean;

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: Integer;
    begin
      b := True;
      for i := 0 to MaxInt do
      begin
        if b then Text := IntToStr(i) else Exit;
        Application.ProcessMessages; {!}
      end;
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    begin
      b := False;
    end;

  • 相关阅读:
    重写/覆盖基类的事件
    关于“日志”的输出控制
    WPF中DataGrid垂直滚动条滚动后导致每行CheckBox选择错乱
    WPF窗体应用程序开发
    C# 操作自定义config文件
    WPF绑定数据源之RelativeSource
    C# http请求 设置代理(标题可以作为搜索关键字)
    前端加载特效
    实现不同的项目,用不同的git 账号提交
    Casbin 使用记录
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940804.html
Copyright © 2011-2022 走看看