screwed over
04-26-2008, 08:24 AM
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:
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
any help would be appreciated.
Note: you may have to test it out in a project with a web object to see whats going wrong.
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
any help would be appreciated.
Note: you may have to test it out in a project with a web object to see whats going wrong.