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;

  • 相关阅读:
    B题 hdu 1407 测试你是否和LTC水平一样高
    A题 hdu 1235 统计同成绩学生人数
    hdu 1869 六度分离(最短路floyd)
    hdu 2795 Billboard(线段树+单点更新)
    hdu 1754 I Hate It(线段树)
    hdu 1166敌兵布阵(线段树)
    hdu 1556(线段树之扫描线)
    Contest2073
    中南oj String and Arrays
    51nod 1459 迷宫游戏 (最短路径—Dijkstra算法)
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940804.html
Copyright © 2011-2022 走看看