WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

Dialog Editor version 6.X
plus
plus

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

Editbox with Filelistbox

 Keywords: Editbox Filelistbox scroll 

Question:

I have a 6.1 dialog with an editbox linked with a filelistbox as the same variable, I'd like the filelistbox to scroll the files when I input the first letter in the editbox, is this possible?

how can i do that?

Answer:

Sounds possible. Basically you need a Dialog Callback where you capture the editbox contents on each character input and examine it. You use this to scan a variable containing the dialogbox contents, then set the scroll position of the listbox with DialogControlSet 10.

;============================================================
;============================================================
;============================================================


#DefineFunction MyDialogCallbackProc(MyDialog_Handle,MyDialog_Message,MyDialog_ID,rsvd1,rsvd2)
   ;DialogprocOptions Constants
   MSG_INIT=0                ; The one-time initilization
   MSG_TIMER=1               ; Timer event
   MSG_BUTTONPUSHED=2        ; Pushbutton or Picturebutton
   MSG_RADIOPUSHED=3         ; Radiobutton clicked
   MSG_CHECKBOX=4            ; Checkbox clicked
   MSG_EDITBOX=5             ; Editbox or Multilinebox
   MSG_FILESELECT=6          ; Filelistbox
   MSG_ITEMSELECT=7          ; Itembox
   MSG_COMBOCHANGE=8         ; Combobox/Droplistbox
   MSG_CALENDAR=9            ; Calendar date change
   MSG_SPINNER=10            ; Spinner number change
   MSG_CLOSEVIA49=11         ; Close clicked (Enabled via Intcontrol 49)
   MSG_FILEBOXDOUBLECLICK=12 ; Get douvle-click message on a FileListBox
   MSG_ITEMOXDOUBLECLICK=13  ; Get douvle-click message on an ItemBox
   DPO_DISABLESTATE=1000     ; codes -1=GetSetting 0=EnableDialog 1=DisableDialog
   DPO_CHANGEBACKGROUND=1001 ; -1=GetSetting otherise bitmap or color string
   ;DialogControlState Constants
   DCSTATE_SETFOCUS=1        ; Give Control Focus
   DCSTATE_QUERYSTYLE=2      ; Query control's style
   DCSTATE_ADDSTYLE=3        ; Add control style
   DCSTATE_REMOVESTYLE=4     ; Remove control style
   DCSTATE_GETFOCUS=5        ; Get control that has focus
   DCSTYLE_INVISIBLE=1       ; Set Control Invisible
   DCSTYLE_DISABLED=2        ; Set Control Disabled
   DCSTYLE_NOUSERDATA=4      ; Note: Setable via DialogControlState function ONLY SPINNER control only
   DCSTYLE_READONLY=8        ; Sets control to read-only (user cannot type in data) EDITBOX MULTILINEBOX SPINNER
   DCSTYLE_PASSWORD=16       ; Sets 'password mode' where only *'s are displayed EDITBOX
   DCSTYLE_DEFAULTBUTTON=32  ; Sets a button as a the default button PUSHBUTTON PICTUREBUTTON
   DCSTYLE_DIGITSONLY=64     ; Set edit box to accept digits only EDITMOX MULTILINEBOX
   DCSTYLE_FLAT=128          ; Makes a 'flat' hyperlink-looking button PUSHBUTTON PICTUREBUTTON
   ;DialogControlSet / DialogControlGet Constants
   DC_CHECKBOX=1             ; CHECKBOX
   DC_RADIOBUTTON=2          ; RADIOBUTTON
   DC_EDITBOX=3              ; EDITBOX MULTILINEBOX
   DC_TITLE=4                ; PICTURE RADIOBUTTON CHECKBOX PICTUREBUTTON VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON
   DC_ITEMBOXCONTENTS=5      ; ITEMBOX FILELISTBOX DROPLISTBOX
   DC_ITEMBOXSELECT=6        ; ITEMBOX FILELISTBOX DROPLISTBOX
   DC_CALENDAR=7             ; CALENDAR
   DC_SPINNER=8              ; SPINNER
   DC_MULTITABSTOPS=9        ; MULTILINEBOX
   DC_ITEMSCROLLPOS=10       ; ITEMBOX FILELISTBOX
   DC_BACKGROUNDCOLOR=11     ; RADIOBUTTON CHECKBOX VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON ITEMBOX FILELISTBOX DROPLISTBOX SPINNER EDITBOX MULTILINEBOX
   DC_PICTUREBITMAP=12       ; PICTURE PICTUREBUTTON
   DC_TEXTCOLOR=13           ; RADIOBUTTON CHECKBOX VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON ITEMBOX FIELLISTBOX DROPLISTBOX SPINNER EDITBOX MULTILINEBOX
   DC_ITEMBOXADD=14          ; ITEMBOX FILELISTBOX DROPLISTBOX
   DC_ITEMBOXREMOVE=15       ; ITEMBOX FILELISTBOX DROPLISTBOX


   switch MyDialog_Message
      case MSG_INIT
         DialogProcOptions(MyDialog_Handle,MSG_EDITBOX,@TRUE)
         return(-1)


     case MSG_EDITBOX  ;ID 003
        typed=DialogControlGet(MyDialog_Handle,003,DC_EDITBOX)        
        flist=DialogControlGet(MyDialog_Handle,004,DC_ITEMBOXCONTENTS)
        fcount=ItemCount(flist,@tab)
        for xx=1 to fcount
           thisfile=ItemExtract(xx,flist,@tab)
           checksize=min(strlen(typed),strlen(thisfile))
           checkt=Strlower(strsub(typed,1,checksize))
           checkf=Strlower(strsub(thisfile,1,checksize))
           if checkt==checkf then break
        next
        xx=min(xx,fcount)
        DialogControlSet(MyDialog_Handle,004,DC_ITEMSCROLLPOS,xx)

        return(-1)      ;  Do default processing


   endswitch       ; MyDialog_Message
   return(-1)      ;  Do default processing
#EndFunction       ;End of Dialog Callback MyDialogCallbackProc

;============================================================
;============================================================
;============================================================

fbox="*.*"
MyDialogFormat=`WWWDLGED,6.1`

MyDialogCaption=`WIL Dialog 1`
MyDialogX=014
MyDialogY=062
MyDialogWidth=302
MyDialogHeight=179
MyDialogNumControls=004
MyDialogProcedure=`MyDialogCallbackProc`
MyDialogFont=`DEFAULT`
MyDialogTextColor=`DEFAULT`
MyDialogBackground=`DEFAULT,DEFAULT`
MyDialogConfig=0

MyDialog001=`004,140,033,011,PUSHBUTTON,DEFAULT,"OK",1,4,32,DEFAULT,DEFAULT,DEFAULT`
MyDialog002=`066,142,034,010,PUSHBUTTON,DEFAULT,"Cancel",0,3,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
MyDialog003=`001,025,132,011,EDITBOX,fbox,"Edit 1",DEFAULT,1,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
MyDialog004=`004,054,124,074,FILELISTBOX,fbox,DEFAULT,DEFAULT,2,DEFAULT,DEFAULT,DEFAULT,DEFAULT`

ButtonPushed=Dialog("MyDialog")

Message("File Selected",fbox)

Article ID:   W15466
File Created: 2003:05:13:11:28:06
Last Updated: 2003:05:13:11:28:06