资料杂谈
秒表倒计时程序(旧版)

qindi12341234

女生 |  古色 设置
瀑布瀑布
从本章开始听

OptionExplicit

PrivateConstSRCCOPY=HCC0020

PrivateDeclareFunctionBitBltLibgdi32(ByValhdcDestAsLong,ByValXDestAsLong,ByValYDestAsLong,ByValnWidthAsLong,ByValnHeightAsLong,ByValhDCSrcAsLong,ByValxSrcAsLong,ByValySrcAsLong,ByValdwRopAsLong)AsLong

PrivateWithEventsmobjSlumberAsclsSlumber

PrivatemobjProgBarAsclsProgressBar

PrivatemobjPieBarAsclsPieBar

PrivatemdTotalTimeAsDouble

PrivatemdCurrentTimeAsDouble

PrivatemdCurrentHoursAsLong

PrivatemdCurrentMinsAsLong

PrivatemdCurrentSecsAsDouble

PrivatembInterruptedAsBoolean

PrivateSubcmdStart_Click()

OnErrorGoToErrHandler

DimsMsgAsString

IfcmdStart.Caption=StopThen

mbInterrupted=True

mobjSlumber.WakeUp

ExitSub

EndIf

EnsureDataisNumeric

txtHours.Text=Val(txtHours.Text)

txtMins.Text=Val(txtMins.Text)

txtSecs.Text=Val(txtSecs.Text)

EnsureValuesarewholenumbers

txtHours.Text=Int(txtHours.Text)

txtMins.Text=Int(txtMins.Text)

txtSecs.Text=Int(txtSecs.Text)

ValidateInputData

SelectCaseVal(txtHours.Text)

CaseIs0

sMsg=Hourscannotbeanegativenumber!

GoToDisplayMsg

EndSelect

SelectCaseVal(txtMins.Text)

CaseIs0

sMsg=Minutescannotbeanegativenumber!

GoToDisplayMsg

CaseIs=60

sMsg=Minutescannotbegreaterthanorequalto60!

GoToDisplayMsg

EndSelect

SelectCaseVal(txtSecs.Text)

CaseIs0

sMsg=Secondscannotbeanegativenumber!

GoToDisplayMsg

CaseIs=60

sMsg=Secondscannotbegreaterthanorequalto60!

GoToDisplayMsg

EndSelect

IfVal(txtHours.Text)=0AndVal(txtMins.Text)=0AndVal(txtSecs.Text)=0Then

sMsg=Pleaseinputcountdowntime!

GoToDisplayMsg

EndIf

DisplayMsg:

IfLen(sMsg)0Then

MsgBoxsMsg,vbInformation+vbOKOnly,App.Title

ExitSub

EndIf

LockInputBoxes

txtHours.Locked=True

txtMins.Locked=True

txtSecs.Locked=True

mbInterrupted=False

cmdStart.Caption=Stop

SettoSlumberevery10milliseconds

(ThismeansthatclsSlumberwillputthethreadtosleepfor

10millisecondsatatimeuntilthetotaltimehaselapsed)

mobjSlumber.SlumberInterval=10

Calculatetotalnumberofmilliseconds

mdTotalTime=(((Val(txtHours.Text)*60)+Val(txtMins.Text))*60)+Val(txtSecs.Text)

StartSlumbering

mobjSlumber.SlumberCLng(mdTotalTime*1000)

Resetformstate

cmdStart.Caption=Start

IfNotmbInterruptedThen

CallDisplay(000.00.00.0000)

mobjProgBar.Value=100

mobjPieBar.Value=100

EndIf

UnLockInputBoxes

txtHours.Locked=False

txtMins.Locked=False

txtSecs.Locked=False

ExitSub

ErrHandler:

MsgBoxErr.Description,vbCritical+vbOKOnly,App.Title

EndSub

PrivateSubForm_L)

OnErrorGoToErrHandler

pbTextBuffer.BackColor=vbBlack

pbTextBuffer.Cls

pbTextBuffer.FontBold=True

pbTextBuffer.FontSize=24

pbTextBuffer.ForeColor=vbGreen

pbTextBuffer.ScaleMode=vbPixels

pbTextBuffer.AutoRedraw=True

pbTextBuffer.Visible=False

SetmobjSlumber=NewclsSlumber

SetmobjProgBar=NewclsProgressBar

SetmobjProgBar.PictureBox=Picture1

mobjProgBar.BackColor=Picture1.BackColor

SetmobjPieBar=NewclsPieBar

SetmobjPieBar.PictureBox=Picture2

Me.ScaleMode=vbPixels

Me.Show

mobjProgBar.Value=100

mobjPieBar.Value=100

DoEvents

CallConvertTime

ExitSub

ErrHandler:

MsgBoxErr.Description,vbCritical+vbOKOnly,App.Title

EndSub

PrivateSubForm_UnlCancelAsInteger)

SetmobjSlumber=Nothing

SetmobjProgBar=Nothing

SetmobjPieBar=Nothing

End

EndSub

PrivateSubmobjSlumber_Slumber()

OnErrorGoToErrHandler

IfmobjSlumber.ElapsedMilliseconds0Then

mdCurrentTime=mdTotalTime-CDbl(mobjSlumber.ElapsedMilliseconds/1000)

mobjProgBar.Value=(100*(mobjSlumber.ElapsedMilliseconds/(mdTotalTime*1000)))

mobjPieBar.Value=mobjProgBar.Value

Else

mobjProgBar.Value=0

mobjPieBar.Value=0

mdCurrentTime=mdTotalTime

EndIf

mdCurrentHours=Int(CStr(mdCurrentTime))\3600

mdCurrentSecs=mdCurrentTime-(mdCurrentHours*3600)

mdCurrentMins=Int(CStr(mdCurrentSecs))\60

mdCurrentSecs=mdCurrentSecs-(mdCurrentMins*60)

CallDisplay(Format$(mdCurrentHours,000).Format$(mdCurrentMins,00).Format$(mdCurrentSecs,00.0000))

ExitSub

ErrHandler:

Err.RaiseErr.Number,Err.Source,[frmCountdown.mobjSlumber_Slumber]Err.Description

EndSub

PrivateSubDisplay(TextAsString)

WithpbTextBuffer

.Cls

.CurrentX=0

.CurrentY=10

pbTextBuffer.PrintText

BitBltMe.hDC,.Left,.Top,.ScaleWidth,.ScaleHeight,.hDC,0,0,SRCCOPY

EndWith

EndSub

PrivateSubConvertTime()

CallDisplay(Format$(Val(txtHours.Text),000).Format$(Val(txtMins.Text),00).Format$(Val(txtSecs.Text),00).0000)

EndSub

PrivateSubtxtHours_KeyUp(KeyCodeAsInteger,ShiftAsInteger)

CallConvertTime

EndSub

PrivateSubtxtMins_Change()

CallConvertTime

EndSub

PrivateSubtxtSecs_Change()

CallConvertTime

EndSub

读书三件事:阅读,收藏,加打赏!

自动订阅最新章节
APP听书(免费)
精品有声·人气声优·离线畅听
活动注册飞卢会员赠200点券![立即注册]
上一页 下一页 目录
书架 加入书架 设置
{{load_tips()}}
{{tt_title}}
00:00
00:00
< 上一章
< 上一章
下一章 >
下一章 >
章节加载中