var
Clients : TList;
Client : TSimpleClient; // 实例
//------------------------------------------------------------------------Client.ListLink := ListBox1.items.Count;//-------------------------------------------------------------------------
try
Client := Pointer(AThread.Data);finally Clients.Delete(Client.ListLink); ListBox1.Items.Delete (ListBox1.Items.IndexOf(Client.Name)); Client.Free; AThread.Data := nil;
end;
为什么我老是不能完全把Clients中的元素删除完呢!?至少都会剩一个删不掉,多的也有好几个,好奇怪.
Clients : TList;
Client : TSimpleClient; // 实例
//------------------------------------------------------------------------Client.ListLink := ListBox1.items.Count;//-------------------------------------------------------------------------
try
Client := Pointer(AThread.Data);finally Clients.Delete(Client.ListLink); ListBox1.Items.Delete (ListBox1.Items.IndexOf(Client.Name)); Client.Free; AThread.Data := nil;
end;
为什么我老是不能完全把Clients中的元素删除完呢!?至少都会剩一个删不掉,多的也有好几个,好奇怪.
ListBox1.items.Count>=1procedure Delete(Index: Integer) index是从0开似的.
即第一个没能删除.要删空可以用Clients.clear
Count表示数量,0表示没有,1就一个了...
Client.ListLnk := ListBox1.Itesm.Count;
Clients.Add(Client);
那具体点,应该怎么样才能按照指定的去删除呢?我不想从头开始一个一个的去删除.
还有在TList中,第一个元素一定会放在0位置上吗?不能从1开始吗?
Memo1.Lines.Add('Items Index:' + IntToStr(ListBox1.Items.Index));
Memo1.Lines.Add('Items Count:' + IntToStr(ListBox1.Items.Count));
当只有一个Items时候,结果是:Items Index:-1
Items Count:0当只有两个Items时候,结果是:Items Index:0
Items Count:1
.............
依此类推.
try
...add, remove, delete, etc.
finally
Clients.UnlockList();
end;