|
* 要将该菜单与你的顶层表单联系, * 从你的顶层表单的 INIT 中用以下语法执行该菜单:
* 语法: DO WITH [,|][]
* oFormRef - 表单对象引用 (一般是 THIS) * cMenuname - 菜单名字 (这在添加菜单时是必须的 - 参见下面说明) * lRename - 更名你的表单的 Name 属性 * lUniquePopups - 决定是否为弹式菜单生成唯一标识
* 示例:
* PROCEDURE Init * DO mymenu.mpr WITH THIS,.T. * ENDPROC
* 如果你计划运行你的顶层表单的多个实例,使用第二个选项参数. 逻辑值参数 lRename 将修改你的 * 表单的 name 属性为传递给菜单的同一个名字,在你的代码中如果你直接用名字引用表单可能会造 * 成冲突.
* 也能也需要在表单释放时移去菜单,这样它不会保持在内存中,除非你想在稍后时间在一个新表单中激活它.
* 如果你在上例中传递可选的参数 lRename 为 .T., * 你可以在表单的 Destroy 事件中象以下显示的那样,方便地移去菜单. * 在使用顶层表单的多个实例时,该方案是理想的.
* 示例:
* PROCEDURE Destroy * RELEASE MENU (THIS.Name) EXTENDED * ENDPROC
* 用 Append/Before/After 定位选项:
* 你可能会在通用选项对话框中设置 Location 选项来添加一个菜单到一个已存在的顶层表单. * 要这样做, 你必须传递相关的新菜单的名字. 在这里需要第二个参数. 如果你最初以 lRename * 参数 = .T.创建菜单, 那么你可以象下面一样用代码更新菜单:
* 示例:
* DO mymenu2.mpr WITH THISFORM,THISFORM.name * * 使用 lUniquePopups:
* 如果你在你的应用程序中多次运行该菜单 , 如相同的顶层表单的多个实例, 你应该以 .T. 传递 * lUniquePopups 参数,这样会生成唯一弹式菜单名以避免可能的冲突.
* 示例:
* PROCEDURE Init * DO mymenu.mpr WITH THIS,.T.,.T. * ENDPROC * * 注意: 在 DO WITH [,|][] * 中一共可以传递九个参数,但菜单中只使用了三个.第 4-9 个参数你可自由地用于你的代码中。 顶层表单中的菜单调用注意事项 |