这样动态创建菜单是否可以?是否存在效率问题?我把item1:=TMenuItem.Create(FavoriteMenu);放到for外面运行时提示错误信息,并且只能创建一条,放到里面可以实现想要的效果,但第循环一次都要创建一遍菜单,这样可行吗?
for i:=0 to strList.Count-1 do
begin
item1:=TMenuItem.Create(Menu1);
item1.Caption:=strFavList(strlist[i],False);
strFavPath:=strFavList(strlist[i],True);
Menu1.Items.Add(item1);
end;
for i:=0 to strList.Count-1 do
begin
item1:=TMenuItem.Create(Menu1);
item1.Caption:=strFavList(strlist[i],False);
strFavPath:=strFavList(strlist[i],True);
Menu1.Items.Add(item1);
end;
//这只是创建一个菜单项,当然要放在循环里。但第循环一次都要创建一遍菜单,这样可行吗?
--------------------------------------------
为什么只循环一次就创建一遍菜单??那用循环有什么意义??
一次就创建好只能做静态的
MenuItem :Array[0..3] of TMenuItem
i :Integer;
begin
MainMenu :=TMainMenu.Create(Self);
for i :=0 to 3 do
begin
MenuItem[i] :=TMenuItem.Create(Self);
MenuItem[i].Name :=NemuItem+IntToStr(i);
MenuItem[i].Caption :=MenuItem[i].Name ;
MainMenu.Item.Add(MenuItem[i]);
end;end;
哦,只是创建一个菜单项啊,明白了,只要不影响执行效率就行了
strlist变量我是经过处理的,所以不必担心,谢谢提醒啊!