冥界3大法王 发表于 2024-10-19 15:15

Delphi的菜单项动删除问题(AI说没有任何其他的引用指向该菜单项,否则可能会导致内

本帖最后由 冥界3大法王 于 2024-10-20 07:48 编辑

Delphi的菜单项动态的删除问题


AI说没有任何其他的引用指向该菜单项,否则可能会导致内没有任何其他的引用指向该菜单项,否则可能会导致内存泄漏
这也是我正担心的问题。。。



有菜单项形如下:
遍历指定路径生成要加载的工具菜单INI                           (得给我留着,因为分配事件了)
重新加载工具菜单                                                             (得给我留着,因为分配事件了)
=====我叫分割线====                                                (得给我留着,没你不好看)
下面的子菜单 和菜单项是动态生成的也是我临时不想要的

。。。。bu la bu la
。。。。
。。。。


上面红字的菜单项是我临时不想要的,怎么删除经济实惠?




下面这样搞似乎不太温柔。。。
var
I: Integer;
begin
for I := 0 to MyMainMenu.Items.Count - 1 do
begin
    if MyMainMenu.Items = MyMenuItem then
    begin
      MyMainMenu.Items.Delete(I);
      Break; // 删除后跳出循环
    end;
end;
end;



不是不该按读取到的INI小节名 ,删除菜单项?

小草草 发表于 2024-10-19 16:15

Delphi,传说中的桌面应用程序的佼佼者,楼主威武

冥界3大法王 发表于 2024-10-19 16:32

小草草 发表于 2024-10-19 16:15
Delphi,传说中的桌面应用程序的佼佼者,楼主威武

不纠结了,提示用户重启删除菜单项。
我这些不牛逼,牛逼的是我一床单各类手写delphi笔记
这个弄完了,实力才能提升。

xuanle 发表于 2024-10-19 21:05

var
I: Integer;
mi:TMenuItem;
begin
for I := 0 to MyMainMenu.Items.Count - 1 do
begin
      mi := MyMainMenu.Items;
    if mi.Caption= 'bu la bu la' then
    begin
      MyMainMenu.Items.Delete(I);
      mi.Free;//如果担心内存泄漏就释放一下,不过一般是没问题的
      Break; // 删除后跳出循环
    end;
end;
end;
页: [1]
查看完整版本: Delphi的菜单项动删除问题(AI说没有任何其他的引用指向该菜单项,否则可能会导致内