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

Samples

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

Resizable AskItemList Box

 Keywords:  Size Resize Resizable AskItemList UDF Dialog

; Resizeable Askitemlist with prelect option
#DefineSubRoutine AskItemCallbackProc(AskItem_Handle,AskItem_Message,AskItem_Name,AskItem_EventInfo,AskItem_ChangeInfo)
   ON_EQUAL = @TRUE
   Switch AskItem_Message
      Case 0; MSG_INIT
         DialogProcOptions(AskItem_Handle,2,@TRUE)  ;--MSG_BUTTONPUSHED
         DialogProcOptions(AskItem_Handle,17,@TRUE)  ;--MSG_DIALOGERESIZE

         ; preselect an item
         DialogControlSet(AskItem_Handle, "ItemList", 6, preselect)

         ; Save values for use when calculating button positions.
         nDlgWidth  = AskItemWidth
         nOkMidOff  = ItemExtract(1,  DialogControlGet(AskItem_Handle, "PushButton_OK", 17 ), " ") - (nDlgWidth/2)
         nCanMidOff = ItemExtract(1, DialogControlGet(AskItem_Handle, "PushButton_Cancel", 17 ), " ") - (nDlgWidth/2)
         nItemMidOff = ItemExtract(1, DialogControlGet(AskItem_Handle, "ItemList", 17 ), " ") - (nDlgWidth/2)
         Return(-1)

      Case 2 ; MSG_BUTTONPUSHED
         Switch ON_EQUAL
            Case AskItem_Name == "PushButton_OK"                    ; OK
               Return(-1)

            Case AskItem_Name == "PushButton_Cancel"                ; Cancel
               Return(0)

         EndSwitch
         Return(-1)

     Case 17 ;MSG_RESIZE
         ; Get the dialog's size deltas.
         nDeltaX   = ItemExtract(1,AskItem_ChangeInfo, " ")
         nDeltaY   = ItemExtract(2,AskItem_ChangeInfo, " ")
         nDlgWidth = nDlgWidth + nDeltaX

         ; The itembox just changes size with the dialog.
         strRect = DialogControlGet(AskItem_Handle, "ItemList", 17 )
         nWidth  = ItemExtract(3, strRect, " ")
         nHeight = ItemExtract(4, strRect, " ")
         strRect = ItemReplace(nWidth+nDeltaX, 3, strRect, " ")
         strRect = ItemReplace(nHeight+nDeltaY, 4, strRect, " ")
         DialogControlSet(AskItem_Handle, "ItemList", 17, strRect )

         ; Buttons
         strRect = DialogControlGet(AskItem_Handle, "PushButton_OK", 17 )
         nY      = ItemExtract(2, strRect, " ")
         strRect = ItemReplace(nDlgWidth/2+nOkMidOff , 1, strRect, " ")
         strRect = ItemReplace(nY+nDeltaY, 2, strRect, " ")
         DialogControlSet(AskItem_Handle, "PushButton_OK", 17, strRect )

         strRect = DialogControlGet(AskItem_Handle, "PushButton_Cancel", 17 )
         nY      = ItemExtract(2, strRect, " ")
         strRect = ItemReplace(nDlgWidth/2+nCanMidOff, 1, strRect, " ")
         strRect = ItemReplace(nY+nDeltaY, 2, strRect, " ")
         DialogControlSet(AskItem_Handle, "PushButton_Cancel", 17, strRect )

   EndSwitch
   Return(-1)
#EndSubRoutine


ItemList = 'apples':@TAB:'bananas':@TAB:'cherries'
preselect = 'bananas'

AskItemFormat=`WWWDLGED,6.2`

AskItemCaption=`DlgAskItemList`
AskItemX=-01
AskItemY=-01
AskItemWidth=176
AskItemHeight=146
AskItemMinWidth=053
AskItemMinHeight=044
AskItemNumControls=003
AskItemProcedure=`AskItemCallbackProc`
AskItemFont=`DEFAULT`
AskItemTextColor=`DEFAULT`
AskItemBackground=`DEFAULT,DEFAULT`
AskItemConfig=3

AskItem001=`041,123,036,012,PUSHBUTTON,"PushButton_OK",DEFAULT,"OK",2,10,32,DEFAULT,DEFAULT,DEFAULT`
AskItem002=`087,123,036,012,PUSHBUTTON,"PushButton_Cancel",DEFAULT,"Cancel",1,20,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
AskItem003=`009,005,154,114,ITEMBOX,"ItemList",ItemList,DEFAULT,DEFAULT,30,256,DEFAULT,DEFAULT,DEFAULT`

AskItemButtonPushed=Dialog("AskItem") ; WinBatch will not display this dialog.



Pause('Result', ItemList)

Article ID:   W17758
Filename:   Resizable AskItemList Box.txt
File Created: 2011:05:23:11:13:16
Last Updated: 2011:05:23:11:13:16