2

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

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

难道我做错了什么?是否有解决方法以使菜单项继续以它们起源的形式使用图像列表?

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

如果我需要澄清什么,请说。

谢谢

彼得

4

2 回答 2

8

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

于 2008-09-30T13:41:44.557 回答
3

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

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

我最终得到的结果是,我的所有菜单和工具栏都使用了Toolbar2000包。然后,您可以下载一段非常棒的代码,称为TB2Merge,它完全符合您的要求。它还利用 Toolbar2000 的一些基础结构将菜单项的图像链接到不同的TImageList基础结构 --- VCL 的 TMainMenu 中不存在的基础结构。请务必彻底阅读 TB2Merge 的文档!

于 2008-09-30T16:16:50.020 回答