GetMessage函数怎么用?最好有例子。
比如我现在有一个很长的循环
repeat
    //这里执行一些程序
    inc(i);
until i<10000;
如果程序执行到这里,就会在这里一直循环,如果执行程序较慢,
则可能导致系统假死状态,我想在repeat...until里面用
GetMessage来维持系统消息,请问应该怎么写?

解决方案 »

  1.   

    你灭有必要使用这个API。
    VCL已经帮你封装好了消息机制,你最好不要使用这些。以免破坏掉VCL的消息机制。
    使用Application.ProcessMessage来代替
      

  2.   

    在delphi中有个取得下一条消息的api 函数,具体我忘记了!~~~你自己查查吧!~~~
      

  3.   

    取得下一条消息??怎么可能?Windows的消息队列中的元素并不是固定的。
      

  4.   

    repeat
        if PeekMessage(Msg,0,0,0,PM_REMOVE) then
        begin
          if (Msg.message = CM_MSG_CLOSE) then
            Break
          else begin
            Handled := False;
            if Assigned(Application.OnMessage) then
                Application.OnMessage(Msg,Handled);
            TranslateMessage(Msg);
            DispatchMessage(Msg);
          end
          ////////这里执行一些程序
        end
        else
          WaitMessage;
        inc(i);
      until i<10000;//修改测试一下就能用了
      

  5.   

    倒~~~怎么可以这么麻烦呢??为什么不用Application.ProcessMessage
      

  6.   

    如果我在使用Winsock的时候使用阻塞方式,那种时候该如何维持系统正常消息循环?