Notifications
Clear all

[Closed] A new thing in multilistbox name retrieve


hi all

last week i asked about how to get back names in multilistbox ie by converting bitarray to array

now iam stuck with a great problem

  1. i wanna retrieve name from multilist as they are selected like if first i selct 7th element from the list and then selcted 4th
    now i wanna these name to be ike ex sphere07 and then sphere04 as the choice of selection is important …

  2. and i also wanna retrieve there index no (7,4) not (4,7) how it can be done
    iam also giving that code where iam using this

fn morph_index morpherList0=
(
Morsel = for i in morpherList0.selection collect morpherList0.items[i] – used to collect the names of seelcted elements
morselindex=for j in morpherList0.selection collect morpherList0.selection as array
x=morselindex.count
if x==1 then –selecting first item it can be anyone fromlist
(

namearr= for x in morpherList0.selection collect morpherList0.items[x] – as first is selcted it shows its name

indexarr[1]=morpherList0.selection[1]

)
else if x ==2 then –selecting 2nd it also can be any one fromlist
(

namearr[2]= for x in morpherList0.selection collect morpherList0.items[x] – as we are selecting 2 it shows names of both but i waana name of 2nd selected only

indexarr[2]=morpherList0.selection[2]– for capturing index

)

)

—- this two things name with corresponding index no is required as iam using it in wiring two morph targets

– iam firing this function in multilist
ex.
on morpherList0 selected i do
(
morpharr1=morpherList0.items —- for second list

mor_num1=morpherList0.selection
Morsel = for i in morpherList0.selection collect morpherList0.items[i] – used to collect the names of seelcted elements
morselindex=for j in morpherList0.selection collect morpherList0.selection as array
– used for taking names of selected objs
morph_index morpherList0

)

i need this very urgently as iam doing scripting for sliders…

1 Reply
1 Reply
(@bobo)
Joined: 1 year ago

Posts: 0

Here is a general example – pick it apart and modify your own.
It stores the indices of the selected items IN THE ORDER OF SELECTION in the user array lastSelection:

(
rollout test "Test"
(
local lastSelection = #()
multilistbox mlb_select items:#("One","Two","Three")
on mlb_select selectionEnd do
(
newSelection = mlb_select.selection as array
for i = 1 to newSelection.count where findItem lastSelection newSelection[i] == 0 do 
	append lastSelection newSelection[i]
for i = lastSelection.count to 1 by -1 where findItem newSelection lastSelection[i] == 0 do 
	deleteItem lastSelection i
format "%: %
" lastSelection (for i in lastSelection collect mlb_select.items[i])
)--end on
)--end rollout
createDialog test
)--end script