var i,a:Integer;
begin
  for i:=1 to n do
  begin
    if ((mm_main.Items[10].Items[3].Caption<>'平铺') and (mm_main.Items[10].Items[3].Caption<>'层叠') and (mm_main.Items[10].Items[i-1].Caption<>'-') and (mm_main.Items[10].Items[3]<>nil)) then
    begin
      mm_main.Items[10].Items[3].Destroy;
      mm_main.Items[10].Items[3].Free;
    end;
  end;
  n:=0;
end;

解决方案 »

  1.   

    访问越界了~~
    你的变量n超出了mm_main.Items[10].Items[i-1]的范围~~
      

  2.   

    改用for i := n to 1 试试。
    还有就是清除的时候用mm_main.Items[10].Items[3].Free就行了。
      

  3.   

    错了,用for i := n downto 1 do
      

  4.   

    估计应该是N- 1的
    for i:=1 to n -1 do 
      

  5.   

    for i := n downto 1 do
      

  6.   

    你好,變數超出範圍了,用debug即可查出問題點,謝謝。