Tim on 12/03/2004

Not sure if this will fit the bill, but here's what I threw together using an array:

 package require Iwidgets

 proc getMenu {} {
  global members
  set _selected [.optionlist get]
  puts "user id is [lindex [array get members $_selected ] 1]"
 }

  pack [iwidgets::optionmenu .optionlist -command getMenu]

  array set members {John 0 Jane 1 Jack 2 Janet 3}


 foreach user [array names members] {
  .optionlist insert end $user 
 }

RS wonders what the bill was, or who Tim is... LV noticed that this page links to one of the question pages, and so assumes that Tim must have asked a question back in December and fits the bill is an English expression meaning this should meet the requirements that you have stated.