这个问题我研究过你只需要复制SConnect.pas到当前目录,
然后找到下面的内容:
procedure TStreamedConnection.InternalClose;
begin
if Assigned(FTransport) then
begin
FTransport.OnTerminate := nil;
FTransport.Terminate;
PostThreadMessage(FTransport.ThreadID, WM_USER, 0, 0);
然后在它的后面加上一句:
if GetCurrentThreadID = MainThreadID then
Classes.CheckSynchronize;
至于为什么要这么做,看看这个帖子吧
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1848198