Thanks for the post...I think I missed this one somehow. Maybe the following approach will solve your problem. A look at the TabInit(), TabHide(), TabShow() functions should explain the main differences. Plus I changed it to a 6.2 dialog. Going this route you can use a standard naming convention for your controls and hide/show them using that criteria. Then the "range" no longer matters.
Home_Path = DirScript()
DirChange(Home_Path)
GoSub Load_Routines
Init_Dialog_Constants()
IntControl(49,3,0,0,0)
cDrop = "This is Just a Test"
TabDlgFormat=`WWWDLGED,6.2`
TabDlgCaption=`Winbatch - Small Tab Strip`
TabDlgX=9999
TabDlgY=9999
TabDlgWidth=262
TabDlgHeight=163
TabDlgNumControls=011
TabDlgProcedure=`TabDlg`
TabDlgFont=`Microsoft Sans Serif|6656|70|34`
TabDlgTextColor=`0|0|0`
TabDlgBackground=`DEFAULT,DEFAULT`
TabDlgConfig=0
TabDlg001=`001,001,258,022,COMCONTROL,"m_co_Tab",DEFAULT,"MSComctlLib.TabStrip.2",DEFAULT,1,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
TabDlg002=`053,057,146,012,STATICTEXT,"s_st_Tab_ParameterControls",DEFAULT,"Parameter Controls",DEFAULT,3,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
TabDlg003=`001,027,258,132,GROUPBOX,"s_gb_Tab_SetSystemParam",DEFAULT,"Set System Parameters",DEFAULT,2,DEFAULT,DEFAULT,DEFAULT,"255|128|64"`
TabDlg004=`043,103,164,042,DROPLISTBOX,"s_dl_Tab_cDrop",cDrop,"Select an Item",DEFAULT,4,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
TabDlg005=`053,057,146,012,STATICTEXT,"u_st_Tab_UserControls",DEFAULT,"User Controls",DEFAULT,6,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
TabDlg006=`001,027,258,132,GROUPBOX,"u_gb_Tab_SetUserParam",DEFAULT,"Set User Parameters",DEFAULT,5,DEFAULT,DEFAULT,DEFAULT,"0|255|0"`
TabDlg007=`053,057,146,012,STATICTEXT,"i_st_Tab_ImageControls",DEFAULT,"Image Controls",DEFAULT,8,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
TabDlg008=`001,027,258,132,GROUPBOX,"i_gb_Tab_SetImageParam",DEFAULT,"Set Image Parameters",DEFAULT,7,DEFAULT,DEFAULT,DEFAULT,"255|0|0"`
TabDlg009=`053,057,146,012,STATICTEXT,"f_st_Tab_FileControls",DEFAULT,"File Controls",DEFAULT,10,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
TabDlg010=`001,027,258,132,GROUPBOX,"f_gb_Tab_SetFileParam",DEFAULT,"Set File Parameters",DEFAULT,9,DEFAULT,DEFAULT,DEFAULT,"255|255|0"`
TabDlg011=`083,073,124,082,CALENDAR,"f_ca_Tab_cCal",cCal,DEFAULT,DEFAULT,11,DEFAULT,DEFAULT`
ButtonPushed=Dialog("TabDlg")
Exit
:Load_Routines
#DefineSubroutine TabInit()
TabHide()
oTab.Tabs.Clear()
oTab.MultiRow = 1
oTab.Tabs.Add(1,"s_Tab1","System ",)
oTab.Tabs.Add(2,"u_Tab2","User ",)
oTab.Tabs.Add(3,"i_Tab3","Images ",)
oTab.Tabs.Add(4,"f_Tab4","Files ",)
oTab.Tabs("i_Tab3").Selected=@True
nIndex = oTab.SelectedItem.Index
nKey = oTab.SelectedItem.Key
TabShow()
Return(1)
#EndSubRoutine
#DefineSubroutine TabHide()
For i = 2 To TabDlgNumControls
DialogControlState(Tab_Handle,DialogProcOptions(Tab_Handle,dpo_getname,%i%),dcstate_addstyle,dcstyle_invisible)
Next
#EndSubRoutine
#DefineSubroutine TabShow()
For i = 2 To TabDlgNumControls
If StrSub(DialogProcOptions(Tab_Handle,dpo_getname,%i%),1,2) == StrSub(nKey,1,2) Then
DialogControlState(Tab_Handle,DialogProcOptions(Tab_Handle,dpo_getname,%i%),dcstate_removestyle,dcstyle_invisible)
EndIf
Next
#EndSubRoutine
#DefineSubRoutine TabDlg(Tab_Handle,DMsg,DCID,DEInfo,ChangeInfo)
Switch (DMsg)
Case msg_init ; Dialog Initialization
DialogProcOptions(Tab_Handle, msg_closevia49,1) ; Close selected (IntControl(49....) (1-On, 0-Off).
DialogProcOptions(Tab_Handle, dpo_disablestate,0) ; Dialog Disable (1-Disable, 2-Wait cursor, 0-Enable).
DialogProcOptions(Tab_Handle, msg_combochange,1) ; DropList.
DialogProcOptions(Tab_Handle, msg_calendar,1) ; Calendar selected.
oTab = DialogObject(Tab_Handle,"m_co_Tab",dlgobject_getobject)
DialogObject(Tab_Handle, "m_co_Tab", dlgobject_addevent,"Click",001001)
TabInit()
DialogControlSet(Tab_Handle,"s_dl_Tab_cDrop",dc_itemboxcontents,cDrop)
Break
Case msg_closevia49 ; Close
oTab = 0
Return 9
Break
Case msg_comevent ; ComEvent
Switch(DialogProcOptions(Tab_Handle,dpo_getnumber,DCID))
Case DialogProcOptions(Tab_Handle,dpo_getnumber,"m_co_Tab")
If DeInfo.identifier == 001001 Then
TabHide()
nIndex = oTab.SelectedItem.Index
nKey = oTab.SelectedItem.Key
TabShow()
EndIf
Break
EndSwitch
Break
Case msg_calendar ; Calendar
Switch(DialogProcOptions(Tab_Handle,dpo_getnumber,DCID))
Case DialogProcOptions(Tab_Handle,dpo_getnumber,"f_ca_Tab_cCal")
cCal = DialogControlGet(Tab_Handle,"f_ca_Tab_cCal",dc_calendar)
Break
EndSwitch
Break
Case msg_combochange ; DropList
Switch(DialogProcOptions(Tab_Handle,dpo_getnumber,DCID))
Case DialogProcOptions(Tab_Handle,dpo_getnumber,"s_dl_Tab_cDrop")
cDrop = DialogControlGet(Tab_Handle,"s_dl_Tab_cDrop",dc_itemboxselect)
cDrop_list = DialogControlGet(Tab_Handle,"s_dl_Tab_cDrop",dc_itemboxcontents)
Break
EndSwitch
Break
EndSwitch
Return -2
#EndSubRoutine
#DefineSubRoutine Init_Dialog_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 double-click message on a FileListBox
MSG_ITEMBOXDOUBLECLICK = 13 ; Get double-click message on an ItemBox
MSG_COMEVENT = 14 ; Get double-click message on an ItemBox
MSG_MENUITEM = 15 ; MenuItem selected
MSG_MENUITEMINIT = 16 ; MenuItem initialized
MSG_RESIZE = 17 ; Dialog resized
MSG_RVITEMSELROW = 18 ; Reportview item select row
MSG_RVDBLCLICKROW = 19 ; Reportview double-click row
MSG_RVCHECKEDITEM = 20 ; Reportview checked/unchecked Item
MSG_RVITEMTEXT = 21 ; Reportview item text
MSG_RVHEADER = 22 ; Reportview header clicked
DPO_DISABLESTATE = 1000 ; codes -1=GetSetting 0=EnableDialog 1=DisableDialog
DPO_CHANGEBACKGROUND = 1001 ; -1=GetSetting otherise bitmap or color string
DPO_CHANGESYSMENU = 1002 ; -1=Get Current 0=none 1=close 2=close/min 3=close/max 4=close/min/max
DPO_CHANGETITLE = 1003 ; -1=Get Current otherise new title
DPO_GETNAME = 1004 ; Returns the name associated with a control's number.
DPO_GETNUMBER = 1005 ; Returns the number associated with a control's name.
DPO_GETCLIENTAREA = 1007 ; Returns the number associated with a control's name.
;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
DCSTATE_MOVEMOUSEOVER = 6 ; Move the mouse over the control
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
DCSTYLE_HEIGHT = 256 ; Turns off automatic height adjustment on ItemBoxes and FileListBoxes
DCSTYLE_CENTER = 512 ; Center Text in VARYTEXT and STATICTEXT Controls
DCSTYLE_RIGHT = 1024 ; Right Justify Text in VARYTEXT and STATICTEXT Controls
DCSTYLE_NOSELCURLEFT = 2048 ; No selection, cursor left EDITBOX MULTILINEBOX
DCSTYLE_NOSELCURRIGHT = 4096 ; No selection, cursor right EDITBOX MULTILINEBOX
DCSTYLE_NOSELCURRIGHT = 4096 ; No selection, cursor right EDITBOX MULTILINEBOX
DCSTYLE_SHIELD = 8192 ; Display Security Shield icon on button (Vista only) PUSHBUTTON PICTUREBUTTON
DCSTYLE_MENUCHECK = 32768 ; Adds a check mark to the left of a menu item MENUITEM
DCSTYLE_MENURADIO = 65536 ; Adds a radio button like dot graphic to the left of a menu item MENUITEM
DCSTYLE_MENUSEP = 131072 ; Causes a separator bar graphic to display instead of text at the menu item's location in the menu MENUITEM
DCSTYLE_MENUBREAK = 262144 ; Cause a column break to occur at the specific item when used with drop-down, context, or submenus. Causes a line break (new row) with menu items hosted directly by the MENUBAR MENUITEM
DCSTYLE_NOHEADER = 524288 ; No header bar REPORTVIEW
DCSTYLE_COLHEADER = 1048576 ; First row column header REPORTVIEW
DCSTYLE_GRIDLINES = 2097152 ; Grid lines REPORTVIEW
DCSTYLE_SELONEROW = 4194304 ; Only one row can be selected at a time REPORTVIEW
DCSTYLE_SELALLROW = 8388608 ; Highlight complete row REPORTVIEW
DCSTYLE_SORTASC = 16777216 ; Ascending sort REPORTVIEW
DCSTYLE_SORTDESC = 33554432 ; Descending sort REPORTVIEW
DCSTYLE_EDITCOL = 67108864 ; Edit first columns text REPORTVIEW
DCSTYLE_COLCHECKBOX = 134217728 ; Add checkbox to first column REPORTVIEW
DCSTYLE_INSHEADER=268435456 ; Include column header text REPORTVIEW
;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
DC_RADIOCONTROL = 16 ; RADIOBUTTON
DC_POSITION = 17 ; RADIOBUTTON
DC_MENUNAMES = 18 ; ALL CONTROLS
DC_HANDLE = 19 ; ALL CONTROLS (Except MENUBAR and MENUITEM)
DC_RVCOLHEAD = 20 ; REPORTVIEW
DC_RVCOLWIDTH = 21 ; REPORTVIEW
DC_RVCOLMATCH = 24 ; REPORTVIEW
DC_RVCANCELEDIT = 25 ; REPORTVIEW
DC_RVCHECKEDROWS = 26 ; REPORTVIEW
DC_RVJUSTIFY = 27 ; REPORTVIEW
;DialogObject constants
DLGOBJECT_ADDEVENT = 1 ; Call dialog callback when the specified event occurs
DLGOBJECT_REMOVEEVENT = 2 ; Stop calling dialog callback when an event previously requested with
DLGOBJECT_GETOBJECT = 3 ; Return an object references to the specified control
DLGOBJECT_GETPICOBJECT = 4 ; Create and return an object reference to a picture object
;Return code constants
RET_DO_CANCEL = 0 ; Cancels dialog
RET_DO_DEFAULT = -1 ; Continue with default processing for control
RET_DO_NOT_EXIT = -2 ; Do not exit the dialog
#EndSubRoutine
Return