clientsocket 的简单问题

zzs3842 2007-12-03 03:14:09
一按钮事件里 为啥clientsocket1:=true 然后判断clientsocket1.active 是否等于true;不行

procedure TForm1.Button4Click(Sender: TObject);
begin
if clientsocket1.Active:=false then clientsocket1.Active:=true;
if clientsocket1.Active=true then clientsocket1.Socket.SendText('ok');
end;
...全文
56 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
楼申中 2007-12-08
哈哈,是不是QQ群里的玉米呀
回复
Corn1 2007-12-06
干嘛非得写在这里呢?可以写在OnConnect事件里啊。连接上以后再发送嘛。
回复
zzs3842 2007-12-05
一按钮事件里 为啥clientsocket1:=true 然后判断clientsocket1.active 是否等于true;不行

procedure TForm1.Button4Click(Sender: TObject);
begin
if clientsocket1.Active=false then clientsocket1.Active:=true;
sleep(100);
if clientsocket1.Active=true then clientsocket1.Socket.SendText('ok');
end;

这样好么
呵呵
回复
zzs3842 2007-12-05
僵哥 Active设置之后,实际Socket会去连接,而默认情况下是异步操作的,所以这个时候去读取Active的值并没有变成意想的true,而仍然是false。请间隔一小段时间之后再点击一次,如果正常的话就可以了。

你的说法是对的 但是 我要是想在一个按钮里实现 active 并判断应该怎么做? sleep(100) 然后判断 这样行么
回复
cilixc 2007-12-04
把条件判断语句写成赋值语句了
回复
QQ14375762 2007-12-04
楼主语法错误了吧?
procedure TForm1.Button4Click(Sender: TObject);
begin
if clientsocket1.Active=false then Begin
clientsocket1.Active:=true;
clientsocket1.Socket.SendText('ok');
End
else
clientsocket1.Socket.SendText('ok');
end;
回复
僵哥 2007-12-03
Active设置之后,实际Socket会去连接,而默认情况下是异步操作的,所以这个时候去读取Active的值并没有变成意想的true,而仍然是false。请间隔一小段时间之后再点击一次,如果正常的话就可以了。
回复
Jethill 2007-12-03
怎么个不行法?应该是可以的。
不过程序这么写好像不是很必要。

直接写成下面的程序效果不是一样么??
procedure TForm1.Button4Click(Sender: TObject);
begin
clientsocket1.Active=true then clientsocket1.Socket.SendText('ok');
end;
回复
发动态
发帖子
网络通信/分布式开发
创建于2007-08-02

1566

社区成员

Delphi 网络通信/分布式开发
申请成为版主
社区公告
暂无公告