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

时间:2008-09-30 09:43:42

标签: delphi c++builder vcl

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

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

我做错了吗?是否有一个解决方法,以便菜单项继续使用它们源自的形式的图像列表?

我在许多项目中使用合并形式,否则单个共享图像列表会有意义。

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

由于

彼得

2 个答案:

答案 0 :(得分:8)

我处理这个的方法是在数据模块上有一个图像列表,然后在每个表单中包含它,以便它们可以共享那一组图标。

答案 1 :(得分:3)

前一段时间我遇到了完全相同的问题,但我也遇到了其他菜单合并问题,因为我的应用程序是MDI,所以我决定以完全不同的方式做事。

但是,您可以尝试将一个表单的图像动态添加到另一个表单的ImageList,并“重定向”ImageIndex es。可能有点棘手,但应该有用。

我最终得到的是,Toolbar2000包用于我的所有菜单和工具栏。然后,您可以下载一段非常好的代码,名为TB2Merge,它可以完全满足您的需求。它还利用Toolbar2000的一些基础设施将菜单项的图像链接到VCL的TMainMenu中不存在的不同TImageList ---基础设施。务必仔细阅读TB2Merge的文档!