Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Combo
#1
How would I go about populating a combo list with the file names in a folder?

Thanks.
#2
This example shows two ways. The first combo is populated before showing dialog. Another combo - when you click the v arrow in it.

Function Dialog53
Code:
Copy      Help
\Dialog_Editor
function# hDlg message wParam lParam
if(hDlg) goto messages

str controls = "3 4"
str cb3 cb4

Dir d
foreach(d "$Desktop$\*" FE_Dir)
,cb3.addline(d.FileName)

if(!ShowDialog("Dialog53" &Dialog53 &controls)) ret

;BEGIN DIALOG
;0 "" 0x90C80A44 0x100 0 0 223 134 "Dialog"
;1 Button 0x54030001 0x4 120 116 48 14 "OK"
;2 Button 0x54030000 0x4 170 116 48 14 "Cancel"
;3 ComboBox 0x54230243 0x0 6 8 212 213 ""
;4 ComboBox 0x54230243 0x0 6 30 212 213 ""
;END DIALOG
;DIALOG EDITOR: "" 0x2020105 "" "" ""


ret
;messages
sel message
,case WM_INITDIALOG
,case WM_DESTROY
,case WM_COMMAND goto messages2
ret
;messages2
sel wParam
,case CBN_DROPDOWN<<16|3
,int hcb=id(4 hDlg)
,SendMessage hcb CB_RESETCONTENT 0 0
,Dir dd
,foreach(dd "$Desktop$\*" FE_Dir)
,,SendMessage hcb CB_ADDSTRING 0 dd.FileName
,
,case IDOK
,case IDCANCEL
ret 1
#3
I thought I saw something on this before, but now I can't find it...How do I make a combo box dependent on the selection of another combo?

Basically I want the first combo to be the folders. The second dialog is to be populated with the files in that selected folder.

In advance...How do I assign the selected file in the second combo to a variable?

Code:
Copy      Help
\Dialog_Editor
function# hDlg message wParam lParam
if(hDlg) goto messages

str controls = "3 4"
str cb3 cb4

cb3="&Folder 1[]Folder 2[]Folder 3[]etc..."

if(!ShowDialog("DependentCombo" &DependentCombo &controls)) ret

;BEGIN DIALOG
;0 "" 0x90C80A44 0x100 0 0 223 134 "Dialog"
;1 Button 0x54030001 0x4 120 116 48 14 "OK"
;2 Button 0x54030000 0x4 170 116 48 14 "Cancel"
;3 ComboBox 0x54230243 0x0 6 8 212 213 ""
;4 ComboBox 0x54230243 0x0 6 30 212 213 ""
;END DIALOG
;DIALOG EDITOR: "" 0x2020105 "" "" ""


Dir d
foreach(d "$Desktop$\*" FE_Dir)
,cb3.addline(d.FileName)
ret
;messages
sel message
,case WM_INITDIALOG
,case WM_DESTROY
,case WM_COMMAND goto messages2
ret
;messages2
sel wParam
,case CBN_DROPDOWN<<16|3
,int hcb=id(4 hDlg)
,SendMessage hcb CB_RESETCONTENT 0 0
,Dir dFolder
,foreach(dFolder "$Desktop$\*" FE_Dir)
,,SendMessage hcb CB_ADDSTRING 0 dFolder.FileName
,case IDOK
,case IDCANCEL
ret 1
#4
Code:
Copy      Help
\Dialog_Editor
function# hDlg message wParam lParam
if(hDlg) goto messages

str controls = "3 4"
str cb3 cb4

Dir d
foreach(d "$Desktop$\*" FE_Dir 1)
,cb3.addline(d.FileName(1))

if(!ShowDialog("DependentCombo" &DependentCombo &controls)) ret

cb4.ltrim("1234567890 ") ;;remove selected item index
out cb4

;BEGIN DIALOG
;0 "" 0x90C80A44 0x100 0 0 223 134 "Dialog"
;1 Button 0x54030001 0x4 120 116 48 14 "OK"
;2 Button 0x54030000 0x4 170 116 48 14 "Cancel"
;3 ComboBox 0x54230243 0x0 6 8 212 213 ""
;4 ComboBox 0x54230241 0x0 6 30 212 86 ""
;END DIALOG
;DIALOG EDITOR: "" 0x2020105 "" "" ""

ret
;messages
sel message
,case WM_INITDIALOG
,case WM_DESTROY
,case WM_COMMAND goto messages2
ret
;messages2
sel wParam
,case CBN_SELENDOK<<16|3 ;;combo 3 item selected
,;get selected item text
,str s
,CB_GetItemText(lParam CB_SelectedItem(lParam) s)
,;enum files in selected folder and populate combo 4
,int hcb=id(4 hDlg)
,SendMessage hcb CB_RESETCONTENT 0 0
,s+"\*"
,Dir dFolder
,foreach(dFolder s FE_Dir)
,,SendMessage hcb CB_ADDSTRING 0 dFolder.FileName(1)
,
,case IDOK
,case IDCANCEL
ret 1
#5
Cool 8)
#6
wow!
pi


Forum Jump:


Users browsing this thread: 1 Guest(s)