09-08-2008, 06:44 AM
Function DROP
To get number of dropped files use numlines(di.files).
\Dialog_Editor
function# hDlg message wParam lParam
if(hDlg) goto messages
str controls = "3"
str lb3
if(!ShowDialog("DROP" &DROP &controls)) ret
;BEGIN DIALOG
;0 "" 0x90C80A44 0x100 0 0 223 135 "Dialog"
;1 Button 0x54030001 0x4 120 116 48 14 "OK"
;2 Button 0x54030000 0x4 170 116 48 14 "Cancel"
;3 ListBox 0x54230101 0x210 0 0 222 76 ""
;END DIALOG
;DIALOG EDITOR: "" 0x2030002 "" "" ""
ret
;messages
sel message
,case WM_INITDIALOG
,QmRegisterDropTarget(id(3 hDlg) hDlg 16)
,case WM_DESTROY
,case WM_COMMAND goto messages2
,case WM_QM_DRAGDROP
,QMDRAGDROPINFO& di=+lParam
,int hlb=id(3 hDlg)
,str s
,foreach s di.files
,,if(dir(s 1)) ;;folder
,,,s+"\*"
,,,Dir d
,,,foreach(d s FE_Dir)
,,,,str sPath=d.FileName(1)
,,,,LB_Add(hlb sPath)
,,else ;;file
,,,LB_Add(hlb s)
ret
;messages2
sel wParam
,case IDOK
,case IDCANCEL
ret 1
To get number of dropped files use numlines(di.files).