⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addmenu.txt

📁 自动化控制visio
💻 TXT
字号:
The published methods of adding menus to Visio are very well if only one add-on will be active at any one time. However, this may not be the case. There are many Visio add-ons that cause problems.

Some add-ons (as well as Visio itself) may display a startup dialog, if this dialog is modal then while this is being shown the menus can not be accessed. 
If more than one add is to be loaded it is indeterminate which one will get access to the menus first. 
procedure add_menus();
var
  UIObj: Visio_TLB.UIObject;
  menusObj: Visio_TLB.Menus;
  menuObj:  Visio_TLB.Menu;
  menuItemObj, subMenuItemObj: Visio_TLB.MenuItem;
begin
 try
  // wait for any startup dialogs to finish
  ready := false;
  while (ready = false) do
  begin
    try
      // if the builtin menu is unavailable then Visio must be busy
      if Visio_Controller.Application.BuiltInMenus <> nil then
        ready := true;
      // Let Visio do its stuff
      Forms.Application.ProcessMessages;
    except;
    end;
  end;
  try
    // always try to get the custom menus first
    UIObj := Visio_Controller.Application.CustomMenus;
    // if the custom menu is empty then get the built in menu
    if UIObj = nil then
      UIObj := Visio_Controller.Application.BuiltInMenus;
  except
    UIObj := Visio_Controller.Application.BuiltInMenus;
  end;
  menusObj := UIObj.MenuSets.ItemAtID[visUIObjSetDrawing].Menus;
  // add our menu at position 8
  menuObj := menusObj.AddAt(8);
  menuObj.Caption := 'YourMenuName';

  // menu item 1
  menuItemObj := menuObj.MenuItems.Add;
  menuItemObj.Caption := 'item 1';
  menuItemObj.AddOnName := 'item1addon';
  menuItemObj.ActionText := 'item 1';
  menuItemObj.MiniHelp := 'item 1';

  // menu item 2
  menuItemObj := menuObj.MenuItems.Add;
  menuItemObj.Caption := 'newSubmenuItems';
  menuItemObj.AddOnName := 'submenuitem1addon';  // any one to make menu visible
  menuItemObj.ActionText := 'newSubmenuItems';
  menuItemObj.MiniHelp := 'newSubmenuItems';

  // submenu item 1
  subMenuItemObj := menuItemObj.MenuItems.Add;
  subMenuItemObj.Caption := 'submenuitem1';
  subMenuItemObj.AddOnName := 'submenuitem1addon';
  subMenuItemObj.ActionText := 'submenuitem1';
  subMenuItemObj.MiniHelp := 'submenuitem1';

  // submenu item 2
  subMenuItemObj := menuItemObj.MenuItems.Add;
  subMenuItemObj.Caption := 'submenuitem2';
  subMenuItemObj.AddOnName := 'submenuitem1addon';
  subMenuItemObj.ActionText := 'submenuitem2';
  subMenuItemObj.MiniHelp := 'submenuitem2';

  // menu item 3
  menuItemObj := menuObj.MenuItems.Add;
  menuItemObj.Caption := 'item 3';
  menuItemObj.AddOnName := 'item1addon';
  menuItemObj.ActionText := 'item 3';
  menuItemObj.MiniHelp := 'item 3';

  // write this to the custom menu
  Visio_Controller.Application.SetCustomMenus(UIObj);
 except;
 end;
end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -