Notifications
Clear all

[Closed] dropdown not updating

hi i just got help from a kind member called “lo” on this thread:

http://forums.cgsociety.org/showthread.php?f=98&t=953929

now am facing the same problem but this time on dropdownlist…in this rollout the dropdownlist changes the filtering type under Sampling quality…but when i change the slider it updates the dropdownlist in the rollout but not on render setup

try destroydialog test catch()
try destroydialog drop catch()
rollout test ""
(
	slider slide range: [1,7,1] type: #integer ticks: 8
	label lbl "1"
	
	local lbl1 = #("1","2","3","4","5","6","7")
	local dd = #(1,1,2,3,4,4,4)
	
	on test open do
		renderers.production=mental_ray_renderer()
	
	on slide changed val do
	(
		lbl.text = lbl1[val]
		drop.dropdown.selection = dd[val]
	)
)

createdialog test

rollout drop ""
(
	dropdownlist dropdown items: #("Box", "Gauss", "Traingle", "Mitchell", "Lanczos")
	
	on dropdown selected i do
	(
		mr=renderers.current
		mr.filter=i-1 as integer
	)
	
)

createdialog drop

setdialogpos drop [759,555]

i added this “drop.dropdown.changed slide.value” below “drop.dropdown.selection = dd[val]” and i got this error message:

>> MAXScript Rollout Handler Exception: – Unknown property: “changed” in ComboBoxControl:dropDown <<

i changed to this “drop.dropdown.selected slide.value“and i got this:

>> MAXScript Rollout Handler Exception: – Type error: Call needs function or class, got: “Box” <<

then this one “drop.dropdown.selection slide.value” got this:

>> MAXScript Rollout Handler Exception: – Type error: Call needs function or class, got: 1 <<

4 Replies

Hey, dunno why you where using two different dialogs but I’ve re-written your stuff to something that seems to make a little more sense to me, see if this helps:

(
	try destroydialog mrSpFilter catch()
	
	mr = mental_ray_renderer()
	
	rollout mrSpFilter "Sampling Filter"
	(
		listbox lstFilters "Filter:" items:#("Box", "Gauss", "Triangle", "Mitchell", "Lanczos") height:5
		slider slide range: [1,5,1] type:#integer ticks:4
		label lbl "1"	
		
		on test open do
		(
			if classof(renderers.production) != classof(mr) then
			(
				renderers.production=mr
                                lstFilters.selection = mr.filter + 1
				slide.value = mr.filter + 1
				lbl.text = lstFilters.selection as string
			) 
			else 
			(
				mr = renderers.production	
				lstFilters.selection = mr.filter + 1
				slide.value = mr.filter + 1
				lbl.text = lstFilters.selection as string
			)
		)
		
		on slide changed val do
		(
			lstFilters.selection = val
			lbl.text = lstFilters.selection as string
			mr.filter = val - 1
		)
		
		on lstFilters selected val do
		(
			slide.value = val
			lbl.text = lstFilters.selection as string
			mr.filter = val - 1
		)
	)

	createdialog mrSpFilter
)

Thanks for the reply Kameleon…but i need dropdownlist…and your rollout has listbox…secondly items in your listbox is not updating in mental ray renderer…

in my rollout as you can see i was able to update the dropdownlist in my rollout using the slider…but i cant update it in MR renderer…any workaround for that

Just changed the listbox to a dropdown and fixed the rollout open event that still had the wrong name… as the update on the mr, it’s working fine here, it updates the slider, the dropdown and the filtering in the render scene dialog…

(
	try destroydialog mrSpFilter catch()
	
	mr = mental_ray_renderer()
	
	rollout mrSpFilter "Sampling Filter"
	(
		dropdownlist lstFilters "Filter:" items:#("Box", "Gauss", "Triangle", "Mitchell", "Lanczos") height:6
		slider slide range: [1,5,1] type:#integer ticks:4
		label lbl "1"	
		
		on mrSpFilter open do
		(
			if classof(renderers.production) != classof(mr) then
			(
				print renderers.current
				renderers.current=mr
				lstFilters.selection = mr.filter + 1
				slide.value = mr.filter + 1
				lbl.text = lstFilters.selection as string
			) 
			else 
			(
				print "bla"
				mr = renderers.production	
				lstFilters.selection = mr.filter + 1
				slide.value = mr.filter + 1
				lbl.text = lstFilters.selection as string
			)
		)
		
		on slide changed val do
		(
			lstFilters.selection = val
			lbl.text = lstFilters.selection as string
			mr.filter = val - 1
		)
		
		on lstFilters selected val do
		(
			slide.value = val
			lbl.text = lstFilters.selection as string
			mr.filter = val - 1
		)
	)

	createdialog mrSpFilter
)
1 Reply
(@patriculus)
Joined: 2 years ago

Posts: 0

Thank you…now its working