如何合并使用单独图像列表的TMainMenu并按每个菜单项保留正确的图像?

时间:2020-03-06 14:54:55  来源:igfitidea点击:

我有一个包含两个TForm类的程序,并且每个类都添加了一个TMainMenu。然后,我试图在运行时动态地合并它们。

我的问题是,当它们合并在TMainMenu中合并的菜单项时,现在以合并它们的形式显示存储在图像列表中的图像,而不是存储在原始表单的图像列表中的图像。

难道我做错了什么?是否有变通办法,以便菜单项继续使用其原始形式的图像列表?

我在许多项目中使用了合并形式,否则一个共享的图像列表将是有意义的。

如果我需要澄清任何事情,请说。

谢谢

彼德

解决方案

我处理此问题的方法是在数据模块上有一个图像列表,然后以每种形式包括该图像列表,以便它们可以共享该单组图标。

不久前我遇到了完全相同的问题,但是由于我的应用程序是MDI,所以我也遇到了其他菜单合并问题,因此我决定以完全不同的方式进行操作。

但是,我们可以尝试将一种形式的图像动态添加到另一种形式的ImageList中,并"重定向"ImageIndexes。可能有些棘手,但应该可以。

最终,我将所有菜单和工具栏都使用了Toolbar2000软件包。然后,我们可以下载一段非常漂亮的代码,称为TB2Merge,它可以完全满足要求。它还利用Toolbar2000的某些基础结构将菜单项的图像链接到VCL的TMainMenu中不存在的其他" TImageList"(基础结构)。确保彻底阅读TB2Merge的文档!