Dialog udfMsgBoxOKTimer (iSecsToWait, sMsgTitle, sMsgText) - Simple Dialog with WinBatch box drawing functions. View Screenshot |
Version History
|
If you have questions about WinBatch, you are encouraged to use online WebBoard BBS at http://webboard.windowware.com |
;------------------------------------------------------------------------------------------------------------------------------------------ If ItemLocate("udfmsgboxoktimer",IntControl(77,103,0,0,0),@TAB) Then Goto skip_udfmsgboxoktimer #DefineFunction udfMsgBoxOKTimer (iSecsToWait, sMsgTitle, sMsgText) @COORD_BOX = "300,300,700,600" @COORD_BOXBG = "000,000,999,999" @COORD_TEXT = "050,025,950,700" @COORD_TIMER = "800,875,950,950" @COORD_OK = "050,825,200,950" @FONT_SYSTEM = "System" @RGB_LTGRAY = "192,192,192" @RGB_BLACK = "000,000,000" @BUTTON_OK = "OK" iBoxID = 1 iButtonID = 1 BoxesUp(@COORD_BOX,@NORMAL) BoxCaption(iBoxID,sMsgTitle) BoxColor(iBoxID,@RGB_LTGRAY,0) BoxDrawRect(iBoxID,@COORD_BOXBG,2) BoxTextFont(iBoxID,@FONT_SYSTEM,70,0,0) BoxTextColor(iBoxID,@RGB_BLACK) BoxDrawText(iBoxID,@COORD_TEXT,sMsgText,@TRUE,16) BoxButtonDraw(iBoxID,iButtonID,@BUTTON_OK,@COORD_OK) BoxDataTag(iBoxID,1) sDTStop = TimeAdd(TimeYmdHms(),StrCat("0:0:0:0:0:",iSecsToWait)) iSecsLast = iSecsToWait+1 iButtonPressed = 0 While !iButtonPressed TimeDelay(.1) iSecs = TimeDiffSecs(sDTStop,TimeYmdHms()) If (iSecs<iSecsLast) iSecsLast = iSecs BoxDrawText(iBoxID,@COORD_TIMER,iSecs,1,2) BoxDataClear(iBoxID,1) EndIf If !iSecs Then Break iButtonPressed = BoxButtonStat(iBoxId,iButtonID) EndWhile BoxDestroy(iBoxID) Return (iButtonPressed) ;.......................................................................................................................................... ; This Function "udfMsgBoxOKTimer" returns an integer value 0 or 1. ; 0 Wait period has timed out. ; 1 User has pressed OK button. ; ; Adapted from WinBatch forum. ; Topic: Dialog Box Timeout (3 of 3), Read 5 times ; Conf: WinBatch Dialogs and the Dialog Editor ; From: dhartman davehartman2007@wideopenwest.com ; Date: Monday, October 06, 2003 08:15 PM ; ; Modified by Detlev Dalitz.20031007 ;.......................................................................................................................................... #EndFunction :skip_udfmsgboxoktimer ;------------------------------------------------------------------------------------------------------------------------------------------ ; --- test --- iSecsToWait = 30 ; Timeout seconds. sMsgTitle = "Countdown Timer" sMsgText = "" sMsgText = StrCat(sMsgText,"Here is some text to be displayed in the box.",@LF,@LF) sMsgText = StrCat(sMsgText,"You can then add additional lines of text to display information to the user. ") sMsgText = StrCat(sMsgText,"An example might be general information or some kind user agreement.") iResult = udfMsgBoxOKTimer(iSecsToWait,sMsgTitle,sMsgText) If !iResult Message("Timer","The timer expired.") Else Message("Timer","Button was pushed.") EndIf Exit ;------------------------------------------------------------------------------------------------------------------------------------------ ;*EOF*