04-20-2019, 12:32 AM
got me on why it will not work is unicode mode enabled in qm?
try this version
Function dialogMultisellistbox
try this version
Function dialogMultisellistbox
ARRAY(str)- lb_selected
str l=
;;sub.m1
;;sub.m2
;;sub.m3
;;sub.m4
;;sub.m5
str dd=
;BEGIN DIALOG
;0 "" 0x90C80AC8 0x0 0 0 224 136 "Dialog"
;5 ListBox 0x54230109 0x200 64 16 96 86 ""
;3 Button 0x54032000 0x0 9 116 56 14 "Run Selected"
;1 Button 0x54030001 0x4 116 116 48 14 "OK"
;2 Button 0x54030000 0x4 168 116 48 14 "Cancel"
;END DIALOG
;DIALOG EDITOR: "" 0x2040802 "*" "" "" ""
str controls = "5"
str lb5
lb5=l
if(!ShowDialog(dd &sub.DlgProc &controls)) ret
out
lb5=lb_selected
out lb5
#sub DlgProc v
function# hDlg message wParam lParam
int hlb
sel message
,case WM_INITDIALOG
,case WM_DESTROY
,case WM_COMMAND goto messages2
ret
;messages2
hlb=id(5 hDlg)
sel wParam
,case IDOK
,sub.LB_GetSelectedItems2(hlb lb_selected)
,case IDCANCEL
,case 3 ;;Run Selected
,sub.LB_GetSelectedItems2(hlb lb_selected)
,_s=lb_selected
,str ss
,foreach ss _s
,,ss.trim
,,opt waitmsg 1
,,sel ss
,,,case "sub.m1"
,,,sub.m1
,,,case "sub.m2"
,,,sub.m2
,,,case "sub.m3"
,,,sub.m3
,,,case "sub.m4"
,,,sub.m4
,,,case "sub.m5"
,,,sub.m5
ret 1
#sub m1
MES m.timeout=5; m.style="OCa"; m.default='C'
mes("this is m1" "" m)
#sub m2
MES m.timeout=5; m.style="OCa"; m.default='C'
mes("this is m2" "" m)
#sub m3
MES m.timeout=5; m.style="OCa"; m.default='C'
mes("this is m3" "" m)
#sub m4
MES m.timeout=5; m.style="OCa"; m.default='C'
mes("this is m4" "" m)
#sub m5
MES m.timeout=5; m.style="OCa"; m.default='C'
mes("this is m5" "" m)
#sub LB_GetSelectedItems2
function hlb ARRAY(str)&a
;Gets text of selected items in a multiple-selection listbox.
int i n=SendMessage(hlb LB_GETSELCOUNT 0 0)
if(n=-1) ;;single-sel control
,a.redim(1)
,if(LB_SelectedItem(hlb a[0])<0) a.redim
else
,a.redim(n)
,if(n)
,,ARRAY(int) selitems.create(n)
,,SendMessage(hlb LB_GETSELITEMS n &selitems[0])
,,for(i 0 n) LB_GetItemText hlb selitems[i] a[i]