How do I call the dropdownList Selected handler as a function?

A user asked:

Event handlers of User Interface Controls can be called as functions. For example, myButton.pressed(), mySpinner.changed 10.0 and so on, but this is not possible with the onselected() event handler of a dropdownlist control because it already has a property called .selected that "hides" the function.

Is there any way to call this method?

Answer:

Not directly - it is a known limitation, but unlikely to get fixed because of backwards compatibility problems.

What you can do is define a function that does what the handler does, then call this custom function from both the handler and from whatever other code that wants to invoke the handler.

EXAMPLE

   rollout testddl_rollout "Dropdownlist Handler"
   (
     dropdownlist ddl_someList items:#("1","2","3")--this is the dropdownlist
     button btn_select1 "Select 1"--these buttons will set the list
     button btn_select2 "Select 2"--by calling the custom function that
     button btn_select3 "Select 3"--replaces the on selected() handler

     --this is the custom function that performs the operations normally done
     --inside the on selected() event handler:
     fn ddl_someList_Selected itm =--we pass the argument passed to the handler
     (
       format "You selected %\n" itm--and do something inside
     )
     --now we can call this custom function from the event hander itself
     on ddl_someList selected itm do ddl_someList_Selected itm
     --and from any other event handlers that want to affect the dropdownlist
     on btn_select1 pressed do ddl_someList_Selected (ddl_someList.selection = 1)
     on btn_select2 pressed do ddl_someList_Selected (ddl_someList.selection = 2)
     on btn_select3 pressed do ddl_someList_Selected (ddl_someList.selection = 3)
   )
   createDialog testddl_rollout