for I :=0 to TreeView1.Items.Count-1 do
begin
if i< TreeView1.Items.Count then
TreeView1.Items[i].Delete; end;上面这段代码运行会出错,我想通过循环来删除节点,不要TreeView1.items.clear,
因为循环过程中需要做些判断
begin
if i< TreeView1.Items.Count then
TreeView1.Items[i].Delete; end;上面这段代码运行会出错,我想通过循环来删除节点,不要TreeView1.items.clear,
因为循环过程中需要做些判断
TreeView1.Items[i].Delete;
这样也可以吧
while TreeView1.Items.Count > 0 do
TreeView1.Items[0].Delete;
这个放在TreeView的Deletion事件中做比较合适, 例如:
type
TMyData = record
A : Integer;
B : Integer;
......
end;
PMyData = ^TMyData;procedure TForm1.TreeView1Deletion(Sender: TObject; Node: TTreeNode);
begin
if Node.Data <> nil then Dispose(PMyData(Node.Data));
end;