本人刚接触delphi,想写一个自定义类,需要有自己的消息循环,但是不要有界面,请问这个自定义类该怎么写?是应该从某个基类继承就可以实现,还是需要自己写消息循环处理消息呢?

解决方案 »

  1.   

    如果你直接继承TObject,可以这样:
    FHWnd := AllocateHWnd(CommWndProc);
    用FHWnd接收消息或者你从TWinControl继承
      

  2.   

    首先这个是个线程,是不是应该要从TThread继承,如果从这里继承了,是否就是说只能用FHWnd := AllocateHWnd(CommWndProc);这种方法来处理消息循环?用这个句柄如何处理消息循环?小弟刚接触delphi,实在是觉得力气不知道该往哪里使。多谢!
      

  3.   

    从TThread可以直接收消息啊
    其他线程给它发送PostThreadMessage线程内部处理:
    先检查消息 PeekMessage然后
    if msg.hwnd <> 0 then
    begin
      TranslateMessage(msg);
      DispatchMessage(msg);
    end;最后
    case msg.message of
    ....{处理代码}
      

  4.   

    还是不太理解,
    if msg.hwnd <> 0 then
    begin
      TranslateMessage(msg);
      DispatchMessage(msg);
    end;
    这段代码应该放在哪个函数中,Execute还是WindowProc?那dispatchmessage之后,哪个函数会被调用去处理呢?WindowProc?
    一头雾水,呵呵
      

  5.   

    你找个spcomm.pas,里面比较详细