elfin25
11-13-2010, 09:17 AM
hello everyone, I'm asking for help again
i have a multilistbox collecting channels in render elements dialog as array items.
pressing the delete button with one item selected working fine, but 2 or more selected items don't work correctly. it deletes every second render element of multilistbox selection :surprised . here's the code (
local re = maxOps.GetCurRenderElementMgr()
local elementlist = #(VRay_Atmosphere,VRay_Background,VRay_BumpNormals,VRay_Caustics,VRay_DiffuseFilter, \
VRay_GlobalIllumination,VRay_Lighting,VRay_MatteShadow,VRay_Normals,VRay_Reflection, \
VRay_ReflectionFilter,VRay_Refraction,VRay_RefractionFilter,VRay_SelfIllumination,VRay_Specular,VRay_MtlID, \
VRay_ObjectID,VRay_RenderID, VRay_WireColor)
local theManager = maxOps.GetRenderElementMgr #Production
local els = #()
fn renderElementsList =
(
for y = 0 to (theManager.numrenderelements() - 1) do
(
el = re.getrenderelement y
append els (el.elementname as string)
)
)
rollout renderElements "Render Elements" width:184 height:408
(
button elem_add "Add" pos:[8,8] width:56 height:24
button elem_del "Delete" pos:[64,8] width:56 height:24
button elem_clear "Clear" pos:[120,8] width:56 height:24
multilistbox elem_list "" pos:[8,40] width:168 height:25
button elem_ok "OK" pos:[8,376] width:84 height:24
button elem_cancel "Cancel" pos:[92,376] width:84 height:24
on renderElements open do
(
els = #()
renderElementsList()
elem_list.items = els
)
on elem_add pressed do
(
re.removeallrenderelements()
setsilentmode true
for n in elementlist do re.addrenderelement (n elementname:(n as string))
els = #()
renderElementsList()
elem_list.items = els
)
on elem_del pressed do
(
for i in elem_list.selection do
(
delID = re.GetRenderElement (i-1)
re.RemoveRenderElement delID
)
elem_list.selection = #()
els = #()
renderElementsList()
elem_list.items = els
)
on elem_clear pressed do
(
re.removeallrenderelements()
re.SetElementsActive false
els = #()
renderElementsList()
elem_list.items = els
)
)
createdialog renderElements style:#(#style_toolwindow, #style_sysmenu)
) please help to solve this problem
i have a multilistbox collecting channels in render elements dialog as array items.
pressing the delete button with one item selected working fine, but 2 or more selected items don't work correctly. it deletes every second render element of multilistbox selection :surprised . here's the code (
local re = maxOps.GetCurRenderElementMgr()
local elementlist = #(VRay_Atmosphere,VRay_Background,VRay_BumpNormals,VRay_Caustics,VRay_DiffuseFilter, \
VRay_GlobalIllumination,VRay_Lighting,VRay_MatteShadow,VRay_Normals,VRay_Reflection, \
VRay_ReflectionFilter,VRay_Refraction,VRay_RefractionFilter,VRay_SelfIllumination,VRay_Specular,VRay_MtlID, \
VRay_ObjectID,VRay_RenderID, VRay_WireColor)
local theManager = maxOps.GetRenderElementMgr #Production
local els = #()
fn renderElementsList =
(
for y = 0 to (theManager.numrenderelements() - 1) do
(
el = re.getrenderelement y
append els (el.elementname as string)
)
)
rollout renderElements "Render Elements" width:184 height:408
(
button elem_add "Add" pos:[8,8] width:56 height:24
button elem_del "Delete" pos:[64,8] width:56 height:24
button elem_clear "Clear" pos:[120,8] width:56 height:24
multilistbox elem_list "" pos:[8,40] width:168 height:25
button elem_ok "OK" pos:[8,376] width:84 height:24
button elem_cancel "Cancel" pos:[92,376] width:84 height:24
on renderElements open do
(
els = #()
renderElementsList()
elem_list.items = els
)
on elem_add pressed do
(
re.removeallrenderelements()
setsilentmode true
for n in elementlist do re.addrenderelement (n elementname:(n as string))
els = #()
renderElementsList()
elem_list.items = els
)
on elem_del pressed do
(
for i in elem_list.selection do
(
delID = re.GetRenderElement (i-1)
re.RemoveRenderElement delID
)
elem_list.selection = #()
els = #()
renderElementsList()
elem_list.items = els
)
on elem_clear pressed do
(
re.removeallrenderelements()
re.SetElementsActive false
els = #()
renderElementsList()
elem_list.items = els
)
)
createdialog renderElements style:#(#style_toolwindow, #style_sysmenu)
) please help to solve this problem
