如果你写的MDI程序中,要将父窗体与子窗体菜单融合在一起,Delphi提供了非常方便的方法.将父窗口的上级菜单比方说"File"文件,有个属性GroupIndex,设为0,将子窗体的菜单比方说"Funcion"功能,将GroupIndex设为1,这样的话,在打开子窗体的时候,就会将菜单合并在一起了.如果你不改这个属性的话,一般来说,GroupIndex都是0,这样一来,打开子窗体的时候,父窗体的菜单就看不到了.还有注意,将菜单本身的AutoMerge(自动合并)设为false,如果放成true的话,两个菜单就会都看不到的.
MenuItem有一个“GroupIndex”属性,将你要溶合的MDI父窗口和子窗口的某个菜单的GroupIndex设成相同的值就OK了。
---------------------------------------------------------------
合并菜单时主要使用两个属性:窗体的Menu属性和菜单控件的GroupIndex属性。
由于一个窗体一次只能使用一个菜单,所以必须用Menu属性指明窗体当前使用的菜单控件名。
GroupIndex属性指明每个菜单项在菜单中的位置。可按照以下规则确定各菜单项的GroupIndex属性:
1)数值从0开始,排在菜单的最左端,并向右依次增大。如果主菜单与被合并的菜单中有相同的菜单项,则可以将两个菜单项的GroupIndex属性设为一个值,这样在菜单合并时,子菜单就会替换掉主菜单上的相应菜单项。
例如:主窗体和子窗体的菜单控件中File菜单项的GroupIndex属性值都设为0,打开子窗体后File菜单就会自动扩展。
2)如果需要将被合并菜单中的菜单项插入到主菜单中去,则可以将主菜单中的GroupIndex属性跳过一个序列值,而将插入菜单项的GroupIndex属性值设为空缺的那个值。
例如:在主窗体中我们将File和Help菜单项的GroupIndex分别设为0和4,而在子窗体中Edit、Search和Window菜单项的
GroupIndex分别设为1、2和3,或1、1和1(此时三个菜单的排列顺序与在菜单编辑器里的排列顺序一致),则打开窗体后,Edit、
Search和Window菜单项就会自动插入。
3)将同一个窗体中的多个菜单项的GroupIndex属性设为相同的值,则它们的排列顺序在菜单融合时不发生变化。
阅读(6100) | 评论(0) | 转发(0) |