如题: 代码如下,那位帮我看看
while MainMenu1.Items.Count>0 do
begin
delMainMenu1(MainMenu1.Items.Items[0]);
MainMenu1.Items.Delete(0);
end;procedure delMainMenu1(v_menu: TMenuItem);
begin
while v_menu.Count>0 do
begin
if v_menu.Items[0].Count>0 then
delMainMenu1(v_menu.Items[0]);
v_menu.Delete(0); end;
end;
while MainMenu1.Items.Count>0 do
begin
delMainMenu1(MainMenu1.Items.Items[0]);
MainMenu1.Items.Delete(0);
end;procedure delMainMenu1(v_menu: TMenuItem);
begin
while v_menu.Count>0 do
begin
if v_menu.Items[0].Count>0 then
delMainMenu1(v_menu.Items[0]);
v_menu.Delete(0); end;
end;
for i := MainMenu1.Items.Count - 1 downto 0 do
beginend;
begin
if v_menu.Items[0].Count>0 then
delMainMenu1(v_menu.Items[0]);
end;
v_menu.Delete(0);
//删除时要从后往前删
for i:=MainMenu1.Items.Count -1 downto 0 do
begin
delMainMenu1(MainMenu1.Items.Items[i]);
MainMenu1.Items.Delete(i);
end; procedure delMainMenu1(v_menu: TMenuItem);
var i:integer;
begin
//删除时要从后往前删
for i:= v_menu.count -1 downto 0 do
begin
if v_menu.Items[i].Count>0 then
delMainMenu1(v_menu.Items[i]);
v_menu.Delete(i);
end;
end;
要不就从后边开始删, 从后边开始删比从前边开始删效率高很多
var
n :integer;
begin
n := v_menu.Count;
while n>0 do
begin
if v_menu.Items[0].Count>0 then
delMainMenu1(v_menu.Items[0]);
v_menu.Delete(0);
n := v_menu.Count;
end;
end;