昨天调了一下午加一晚上,原来是这样。
线程函数
procedure TTCPClientHandleThread.Execute;
begin
……
while not Terminated do
begin
if FIdTCPClient.Connected then
begin
try
FRxString := FRxString + FIdTCPClient.ReadChar;
FEndOfPacket := False;
except
if not FEndOfPacket then
begin
FEndOfPacket := True;
FDataList.data := FRxString;
Synchronize(HandleInput); //就是这句
//改成发消息了
//PostMessage(ReceiveHandle, WM_TCPRECEIVEDATA