Im using the following script to populate a table of which to create a menu with. the problem is, after you have used the menu once it wont work again, which is a rather big bug for what i am doing. heres the script:
any help would be appreciated.Code:tabs = 1; pObjects = Page.EnumerateObjects(); tblMenu = {} tblMenu[1] ={}; tblMenu[1].Text = "New Tab"; tblMenu[1].ID = 99864; tblMenu[1].Checked = false; tblMenu[1].Enabled = true; tblMenu[2] ={}; tblMenu[2].Text = "---"; tblMenu[2].ID = 0; tblMenu[2].Checked = false; tblMenu[2].Enabled = true; for index, oName in pObjects do if String.Left(oName, 3) == "Web" then tblMenu[Tabs+2] ={}; tblMenu[Tabs+2].Text = Web.GetURL(oName); tblMenu[Tabs+2].ID = String.ToNumber(String.Replace(oName, "Web", "", false)); tblMenu[Tabs+2].Checked = false; tblMenu[Tabs+2].Enabled = true; tblMenu[Tabs+2].SubMenu = {}; tblMenu[Tabs+2].SubMenu[1] = {}; tblMenu[Tabs+2].SubMenu[1].Text = "Open Tab"; tblMenu[Tabs+2].SubMenu[1].ID = String.ToNumber(String.Replace(oName, "Web", "", false)); tblMenu[Tabs+2].SubMenu[1].Checked = false; tblMenu[Tabs+2].SubMenu[1].Enabled = true; tblMenu[Tabs+2].SubMenu[2] = {}; tblMenu[Tabs+2].SubMenu[2].Text = "Close Tab"; tblMenu[Tabs+2].SubMenu[2].ID = 1001 .. String.ToNumber(String.Replace(oName, "Web", "", false)); tblMenu[Tabs+2].SubMenu[2].Checked = false; tblMenu[Tabs+2].SubMenu[2].Enabled = true; Tabs = Tabs+1; end end bPos = Button.GetPos("Button11"); tSelect = Application.ShowPopupMenu(bPos.X, bPos.Y, tblMenu, TPM_LEFTALIGN, TPM_TOPALIGN, true, true); if tSelect == 99864 then -- Web object properties table. tblWebProps = {}; tblWebProps.URL = "http://www.google.com"; tblWebProps.Width = 621; tblWebProps.Height = 362; tblWebProps.Y = 45; tblWebProps.X = 4; tblWebProps.ResizeLeft = true; tblWebProps.ResizeRight = false; tblWebProps.ResizeTop = false; tblWebProps.ResizeBottom = true; tblWebProps.Visible = true; tblWebProps.Enabled = true; Page.CreateObject(OBJECT_WEB, "Web"..Tabs, tblWebProps); elseif String.Left(tSelect, 4) == "1001" then cID = String.Replace(tSelect, "1001", "", false); Page.DeleteObject("Web"..cID); elseif tSelect ~= nil then for index, oName in pObjects do if String.Left(oName, 3) == "Web" then Web.SetVisible(oName, false); end end Web.SetVisible("Web"..tSelect, true); end
Note: you may have to test it out in a project with a web object to see whats going wrong.

Reply With Quote