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.

Photo Player COMCONTROL

 Keywords: Photo Image Img Player Viewer Play Stop Pause Jpg Tif Gif Bmp

;***************************************************************************
;**
;**      Photo Player
;**
;** Purpose: View Jpg & Gif files
;** Inputs: Photo Directory Path
;** Outputs: Displays Images in a Dialog COMCONTROL
;** Revisions:
;**            1.0 20121128 Deana Falk
;**               Initial release.
;**
;***************************************************************************

#DefineSubRoutine InitDialogConstants()
   ;DialogprocOptions Constants
   MSG_INIT=0                ; The one-time initialization
   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 DialogProcOptions 1002
   MSG_FILEBOXDOUBLECLICK=12 ; Get double-click message on a FileListBox
   MSG_ITEMBOXDOUBLECLICK=13 ; Get double-click message on an ItemBox
   MSG_COMEVENT=14           ; COMCONTROL Event notification from DialogObject (NOT DialogProcOptions)

   DPO_DISABLESTATE=1000     ; codes -1=GetSetting 0=EnableDialog 1=DisableDialog
   DPO_CHANGEBACKGROUND=1001 ; -1=Get Current 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      ; Set/Get Dialog Title - (-1 to get)

   ;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_DEFAULT=0         ; Set Default Style
   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 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_NOADJUST=256      ; Turns off auto-height adjustment  ITEMBOX FILELISTBOX
   DCSTYLE_TEXTCENTER=512    ; Center text in control VARYTEXT STATICTEXT
   DCSTYLE_TEXTRIGHT=1024    ; Flush-Right text in control VARYTEXT STATICTEXT
   DCSTYLE_NOSELCURLEFT=2048 ; No selection, cursor left EDITBOX MULTILINEBOX
   DCSTYLE_NOSELCURRIGHT=4096; No selection, cursor right EDITBOX MULTILINEBOX

   ;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_RADIOVALUE=16          ; RADIOBUTTON


   ;DialogObject constants
   DLGOBJECT_ADDEVENT=1      ; Call dialog callback when the specified event occurs
   DLGOBJECT_STOPEVENT=2     ; Stop calling dialog callback when an event previously requested with
   DLGOBJECT_GETOBJECT=3     ; Return an object references to the specified control
   DLGOBJECT_GETPICTURE=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
   Return
#EndSubRoutine


#DefineFunction PictCallbackProc(Pict_Handle,Pict_Message,Pict_Name,Pict_EventInfo,rsvd)
InitDialogConstants()                                       ; Initialize Dialog Constants
   ON_EQUAL = @TRUE                                         ; Initialize variable ON_EQUAL
   Switch Pict_Message                                      ; Switch based on Dialog Message type
      Case MSG_INIT                                         ; Standard Initialization message
         p_files=PtrGlobal(g_files)
         p_cHTM=PtrGlobal(g_cHTM)
         DialogProcOptions(Pict_Handle,MSG_BUTTONPUSHED,@TRUE) ; Monitor Pushbutton
         oDoc = DialogObject(Pict_Handle,"ComControl_1",DLGOBJECT_GETOBJECT) ; Return an object references to the COM control
         ctr = 1
         DialogControlSet(Pict_Handle, "VaryText_1", DC_TITLE, ctr) ; Set Vary text counter
         thisphoto = ItemExtract(ctr,*p_files,@TAB) ; Extract photo name from list
         If FileExist(thisPhoto)
            oDoc.Open()
            pHTM = StrReplace(*p_cHTM,'[photo]',thisphoto) ; replace [photo] in HTML with actual photo path
            ;HTML DOM writeln() Method The writeln() method is identical to the write() method, with the addition of writing a new line character after each expression.
            oDoc.writeln(pHTM)
            oDoc.Close()
         EndIf
         oDoc = 0
         Return(RET_DO_DEFAULT)

     Case MSG_TIMER
         p_files=PtrGlobal(g_files)
         p_cHTM=PtrGlobal(g_cHTM)
         oDoc = DialogObject(Pict_Handle, "ComControl_1", DLGOBJECT_GETOBJECT) ; Return an object references to the COM control
         ctr = DialogControlGet( Pict_Handle, "VaryText_1", DC_TITLE )
         total = ItemCount( *p_files, @TAB )

         ctr = ctr+1
         DialogControlSet( Pict_Handle, "VaryText_1", DC_TITLE, ctr )

         If ctr > 0 && ctr <= total
            ;Enable < Button control
            DialogControlState( Pict_Handle, "PushButton_Pause", DCSTATE_REMOVESTYLE, DCSTYLE_DISABLED)
         EndIf

         If ctr > total
            ;Disable > Button control
            DialogControlState( Pict_Handle, "PushButton_Play", DCSTATE_ADDSTYLE, DCSTYLE_DISABLED)
            oDoc.Open()
            pHTM = '<html><head></head><body bgcolor="#408080">DONE</body></html>'
            oDoc.writeln(pHTM)
            oDoc.Close()
            oDoc = 0
            ;Disable Timer
            DialogProcOptions( Pict_Handle, MSG_TIMER, 0 )
            Return(RET_DO_NOT_EXIT)
         EndIf

         thisphoto = ItemExtract(ctr,*p_files,@TAB)
         If FileExist(thisPhoto)
            oDoc.Open()
            pHTM = StrReplace(*p_cHTM,'[photo]',thisphoto)
            oDoc.writeln(pHTM)
            oDoc.Close()
         EndIf
         oDoc = 0
         Return(RET_DO_DEFAULT)

     Case MSG_BUTTONPUSHED
        Switch ON_EQUAL
           Case Pict_Name == "PushButton_Play"
               DialogProcOptions( Pict_Handle, MSG_TIMER, 1000 )
               Return(RET_DO_NOT_EXIT)

            Case Pict_Name == "PushButton_Pause"
               DialogProcOptions( Pict_Handle, MSG_TIMER, 0 )
               Return(RET_DO_NOT_EXIT)

           Case Pict_Name == "PushButton_Stop"             ; ID "PushButton_Stop"  PushButton_Stop
              Return(RET_DO_CANCEL)

        EndSwitch                                          ; Pict_Name
        Return(RET_DO_DEFAULT)
   EndSwitch                                                ; Pict_Message
   Return(RET_DO_DEFAULT)
#EndFunction                                              ; End of Dialog Callback PictCallbackProc

;============================================================
;============================================================
;============================================================
startdir = 'C:\Users\Public\Pictures\Stage'
photodir = AskDirectory('Select Photo Directory', startdir, 'C:\', 'OK ?', 4)
DirChange(photodir)


PtrGlobalDefine( g_files ) ; Define global variable
g_files = FileItemPath('*.jpg|*gif')
total = ItemCount( g_files, @TAB )
vtVariable1 = 'of ': total

PtrGlobalDefine( g_cHTM ) ; Define global variable
g_cHTM = StrCat('<html><head><style type="text/css"></style><!--body{overflow:auto}--></style></head><body bgcolor="#408080">',@CRLF)
g_cHTM = StrCat(g_cHTM,'<img border = "0" src = "[photo]" height = "100%%" alt= "">',@CRLF)
g_cHTM = StrCat(g_cHTM,'</body></html>',@CRLF)

PictFormat=`WWWDLGED,6.2`

PictCaption=`Photo Player`
PictX=002
PictY=061
PictWidth=454
PictHeight=333
PictNumControls=007
PictProcedure=`PictCallbackProc`
PictFont=`Microsoft Sans Serif|6144|70|34`
PictTextColor=`0|0|0`
PictBackground=`DEFAULT,64|128|128`
PictConfig=0

Pict001=`025,007,404,260,COMCONTROL,"ComControl_1",DEFAULT,"mshtml:",DEFAULT,7,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
Pict002=`223,279,026,012,PUSHBUTTON,"PushButton_Play",DEFAULT,"Play",1,1,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
Pict003=`193,279,026,012,PUSHBUTTON,"PushButton_Pause",DEFAULT,"Pause",2,2,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
Pict004=`389,279,036,012,PUSHBUTTON,"PushButton_Stop",DEFAULT,"Stop",0,3,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
Pict005=`065,277,044,012,VARYTEXT,"VaryText_1",iCount,DEFAULT,DEFAULT,5,1024,DEFAULT,DEFAULT,DEFAULT`
Pict006=`029,277,034,012,STATICTEXT,"StaticText_1",DEFAULT,"Picture #",DEFAULT,4,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
Pict007=`111,277,044,012,VARYTEXT,"VaryText_2",vtVariable1,DEFAULT,DEFAULT,6,DEFAULT,DEFAULT,DEFAULT,DEFAULT`

ButtonPushed=Dialog("Pict")





Exit

Article ID:   W17754
Filename:   Photo Player COMCONTROL .txt
File Created: 2012:11:28:11:57:02
Last Updated: 2012:11:28:11:57:02