控件绑定的问题 VCL组件开发及应用http://www.delphi2007.net/DelphiVCL/html/delphi_20061223191633161.html
我动态创建了TCPServer,ADOonnection,一个socket对应一个数据库连接,想将TCPServer和ADOonnection绑定,
如下:
for i := 0 to 5 do
begin
ADOConn[i] := TADOConnection.Create(nil);
TCPserver[i] := TTCPserver.Create(ADOConn[i]);
TCPserver[i].BlockMode := bmThreadBlocking;
.......TCPserver和ADOConnection的初始化信息.....
end;
在TcpServerAccept(Sender: TObject;
ClientSocket: TCustomIpClient);事件中写如下:
var ADOCon : TADOConnection;
begin
ADOCon := TADOConnection(sender);
while ClientSocket.ReceiveBuf(Datahead,sizeof(Datahead))>0 do
begin
......处理接收到的数据....
end
我在while处理完后,第二次运行到while时,提示地址访问错误。
我想是我的ADOCon := TADOConnection(sender);不对,但我不知道怎样才对。
大家帮忙指点一下
我做了以下修正,就可以了:
创建部分:
......
ADOConn[i] := TADOConnection.Create(nil);
ADOConn[i].Tag := i;
TCPserver[i] := TTCPserver.Create(ADOConn[i]);
TCPserver[i].Tag := i;
.......
接收部分:
.....
TCPs := TCPserver(sender);
ADOC := ADOConn[TCPs.tag];
OK了。
大家进来分分了。
自己解决了
JF
关于控件动态邦定、有这方面的经验的各位发发言,我一会结贴。