Last sample was with TWSocket's built in message pump.

Instead you can write your own, something like this:

procedure TMyThread.PumpMessages(WaitForMessages: Boolean);
var
    HasMessage : Boolean;
    Msg        : TMsg;
    MsgRec     : TMessage;
begin
   while TRUE do begin
        if Terminated and WaitForMessages then
            Break;
        if WaitForMessages then
            HasMessage := GetMessage(Msg, 0, 0, 0)
        else
            HasMessage := PeekMessage(Msg, 0, 0, 0, PM_REMOVE);
        if not HasMessage then
            break;

        if Msg.hwnd = 0 then begin
            case Msg.message of
            WM_MY_CUSTOM_MESSAGE:
                begin
                    Do something here
                end;
            WM_QUIT :
                begin
                    Terminate;
                    Break;
                end;
            else
                MsgRec.Msg    := Msg.message;
                MsgRec.WParam := Msg.wParam;
                MsgRec.LParam := Msg.lParam;
                Dispatch(MsgRec);
            end;
        end
        else begin
            TranslateMessage(Msg);
            DispatchMessage(Msg);
        end;
    end;
end;


Arno Garrels wrote:
> Or better try something like this (not tested)
> 
> procedure TMyThread.Execute;
> begin
>     prepare the data to be sent
>     Wsocket := TWsocket.Create(nil);
>     try
>         Assign all properties and events
>         ..
>         Wsocket.Send(something);
>         Wsocket.MessageLoop;
>     finally
>         WSocket.Free;
>         WSocket := nil;
>         clean up, thread result etc. if necessary
>     end;
> end;
> 
> procedure TMyThread.WSocketDataSent(Sender: TObject; ErrCode: Word);
> begin
>     WSocket.CloseDelayed;
> end;
> 
> procedure TMyThread.WSocketSessionClosed(Sender: TObject; ErrCode: Word);
> begin
>     PostMessage(WSocket.Handle, WM_QUIT, 0, 0);
> end;
> 
>> 
>>> It's execute method does just check wheter there is something to send
>>> and if
>>> yes, it will build a correct data packet and send it. Then it will be
>>> idle until the next
>>> send request comes in.
>>> 
>>> Greetings
>>> 
>>> Markus
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to