You can use local aliases as well.

Code:
alias -l id_a { return 1 } 
alias -l id_b { return 2 } 
alias -l id_c { return 3 } 
alias -l id_d { return 4 } 

dialog test {
  title ""
  size -1 -1 300 300
  option dbu
  button "a", $id_a, 0 0 150 150
  button "b", $id_b, 151 0 150 150
  button "c", $id_c, 0 151 150 150
  button "d", $id_d, 151 151 150 150
}
on *:dialog:test:sclick:*:{ 
  if ($did == $id_a) { noop $input(a,dho,b) }
}