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;

  • 相关阅读:
    tomcat报错:java.io.IOException: 您的主机中的软件中止了一个已建立的连接。
    mysql 的 case when 用法
    分享几个能用的 editplus 注册码
    windows 时间同步至最新时间方法 | windows 时间同步服务器
    tomcat 如何登录 Server Status、Manager App、Host Manager
    Eclipse将java项目导出可执行的jar文件
    Java 中将字符串与 unicode 相互转换的工具类
    解决Lost connection to MySQL server during query错误方法
    gt,gte,lt,lte缩写的含义
    python 打印调用栈
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940804.html
Copyright © 2011-2022 走看看