Einzelnen Beitrag anzeigen

schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#9

Re: Strings per PostMessage intern weitergeben?

  Alt 23. Jan 2010, 17:57
Die MeinForm schickt es so:
Delphi-Quellcode:
function TFormClient.SendMessageToThread(const Command : Byte) : Boolean;
begin
    if Assigned(ThreadTCPClient) then
    begin
      if ThreadTCPClient.ThreadID <> 0 then
          Result := PostThreadMessage(ThreadTCPClient.ThreadID, SendCommandToServer, 0,Command)
    end;
end;
Der Thread empfängt sie dann so:
Delphi-Quellcode:
  MyIdTCPClient := TIdTCPClient.Create(nil);
    while not Terminated do
    begin

      if MyIdTCPClient.Connected then begin
        Sleep(1);

        //check first if message got received from mainform:
        Peekmessage(Msg, 0, 0, 0, PM_REMOVE);

          case Msg.message of

            SendCommandToServer : begin
                Msg.message := 0;

            end; //SendCommandToServer : begin
          end; //case Msg.message of


        if not MyIdTCPClient.IOHandler.InputBufferIsEmpty then
        begin
          //schau was im Inputpuffer vom Client ist
        end;
      end
      else begin

          MyIdTCPClient.Connect;
        if MyIdTCPClient.Connected then
          fServerConnectionStatus := Connected;
      end;
So geht es, aber wenn ich das Msg.message := 0; rausnehme dann bekomme ich die Meldung 2 mal.
Delphi 2010, Update 4 & 5
  Mit Zitat antworten Zitat