当客户端套接字与服务器套接字断开连接时,我试图从列表视图中删除项目标题。在我的代码中,当客户端连接到服务器时,列表视图会添加一个图标和一个标题(client.hostname),但是当客户端断开连接时如何删除该项目? Listview1.items.delete.caption(socket.host)
. 有什么帮助吗?
尽管我的英语不好,我还是会尝试解释一下:我所需要的只是从列表视图中删除一个项目,以便客户端套接字断开连接。Ken White 先生给了我一个几乎相同的问题的解决方案,但是我无法在多个客户端连接到服务器的情况下解决它,即,如何删除属于刚刚断开连接的主机的 listview 标题?
我的 serversocket1 代码:(我将 serversocket1 重命名为 socket1)
procedure TForm1.socket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
ListView1.AddItem(Socket.RemoteHost, socket);
end;
我用来在客户端断开连接时尝试删除项目的代码:
procedure TForm1.socket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
var
L : TListItem;
begin
L:=listview1.FindCaption(0,inttostr(socket.Handle),false,true,false);
if L<>nil then
L.Delete;
end;
但 listview 项目不会删除。