procedure TSendArticle.Execute;
var
...
begin
freeonterminate:=false;
...
CS2:=TClientSocket.Create(nil);
// CS2.Close;
CS2.OnConnect:=CS2Connect;
CS2.OnRead:=CS2Read;
CS2.OnConnecting:=CS2Connecting;
CS2.Host:=HostIP;
CS2.port:=HostPort;
CS2.Open;
FmMain.StatusBar1.Panels[0].Text:='已打开SOCKET...';
...
end;procedure TSendArticle.CS2Connecting(Sender: TObject;
Socket: TCustomWinSocket);
begin
FmMain.StatusBar1.Panels[0].Text:='正在连接服务器...';
end;procedure TSendArticle.CS2Connect(Sender: TObject;
Socket: TCustomWinSocket);
var
datas:string;
begin
FmMain.StatusBar1.Panels[0].Text:='已连接服务器,正在发送数据...';
Socket.SendText(C_SendData);
end;============================================请教,以上所有代码我是放在一个线程里执行的.
但这里面合建的CLIENTSOCKET组件不能正常执行它的事件,比如我上面有这三句代码:
CS2.OnConnect:=CS2Connect;
CS2.OnRead:=CS2Read;
CS2.OnConnecting:=CS2Connecting;
也写了相应的三个过程的,但它并不会执行那几个过程,为什么呢?
我把这些代码全放到主线程里又执行的好好的。为什么呢?想了一天了,实在想不通。
var
...
begin
freeonterminate:=false;
...
CS2:=TClientSocket.Create(nil);
// CS2.Close;
CS2.OnConnect:=CS2Connect;
CS2.OnRead:=CS2Read;
CS2.OnConnecting:=CS2Connecting;
CS2.Host:=HostIP;
CS2.port:=HostPort;
CS2.Open;
FmMain.StatusBar1.Panels[0].Text:='已打开SOCKET...';
...
end;procedure TSendArticle.CS2Connecting(Sender: TObject;
Socket: TCustomWinSocket);
begin
FmMain.StatusBar1.Panels[0].Text:='正在连接服务器...';
end;procedure TSendArticle.CS2Connect(Sender: TObject;
Socket: TCustomWinSocket);
var
datas:string;
begin
FmMain.StatusBar1.Panels[0].Text:='已连接服务器,正在发送数据...';
Socket.SendText(C_SendData);
end;============================================请教,以上所有代码我是放在一个线程里执行的.
但这里面合建的CLIENTSOCKET组件不能正常执行它的事件,比如我上面有这三句代码:
CS2.OnConnect:=CS2Connect;
CS2.OnRead:=CS2Read;
CS2.OnConnecting:=CS2Connecting;
也写了相应的三个过程的,但它并不会执行那几个过程,为什么呢?
我把这些代码全放到主线程里又执行的好好的。为什么呢?想了一天了,实在想不通。
var
...
begin
freeonterminate:=false;
...
CS2:=TClientSocket.Create(nil);
// CS2.Close;
CS2.OnConnect:=CS2Connect;
CS2.OnRead:=CS2Read;
CS2.OnConnecting:=CS2Connecting;
CS2.Host:=HostIP;
CS2.port:=HostPort;
CS2.Open;
FmMain.StatusBar1.Panels[0].Text:='已打开SOCKET...';
...
//加上下面的两句
repeat
until Terminated;
end;
repeat
until Terminated;
加了这两句还是跟之前一样,没反应哦。 zklove(花花公子) 那为什么我把上面的代码全放到主线程上又能正常执行呢?