$INCLUDE "RAPIDQ.INC"
$TYPECHECK ON
CONST sExeName = "RQSTATUSMSGPROGBAR.EXE"
CONST WM_VSCROLL = &H115
CONST SB_BOTTOM = 7
CREATE frmTest AS QFORM
Width = 400 : Height = 210
CAPTION = "< rq StatusMessage / ProgressBar Helper Utility >"
delBorderIcons(biMinimize) : delBorderIcons(biMaximize)
Center
CREATE lblStatusMsg AS QLABEL
Left = 20 : Top = 5 : Width = 300 : Height = 15
CAPTION = "Status Messages"
END CREATE
CREATE lstStatusMsg AS QLISTBOX
Left = 20 : Top = 20 : Width = 350 : Height = 70
END CREATE
CREATE lblProgBar AS QLABEL
Left = 30 : Top = 95 : Width = 290 : Height = 20
CAPTION = "Script Progress"
END CREATE
CREATE progressBar AS QGAUGE
Left = 30 : Top = 110 : Width = 330 : Height = 20
ForeColor = clBlue
END CREATE
CREATE cmdCancel AS QBUTTON
Left = 150 : Top = 145 : Width = 100 : Height = 25
CAPTION = "Cancel"
END CREATE
CREATE txtBox AS QEDIT
Left = -130 : Top = 150 : Width = 100
END CREATE
END CREATE
SUB txtBox_onChange
DIM sText AS STRING, ucMsg AS STRING
DIM iPct AS INTEGER, sPct AS STRING, nPct AS INTEGER
sText = txtBox.Text
IF sText = "" THEN EXIT SUB
ucMsg = UCASE$(sText)
iPct = INSTR(ucMsg, "% COMPLETE")
IF ucMsg = "PING" THEN
txtBox.Text = ""
ELSEIF ucMsg = "QUIT" THEN
Application.Terminate
ELSEIF IF iPct > 0 THEN
sPct = MID$(ucMsg, iPct-3, 3)
nPct = VAL(sPct)
IF nPct >= 0 AND nPct <= 100 THEN
progressBar.Position = nPct
END IF
txtBox.Text = ""
ELSE
lstStatusMsg.AddItems sText
SENDMESSAGE(lstStatusMsg.Handle, WM_VSCROLL, SB_BOTTOM, 0)
txtBox.Text = ""
END IF
END SUB
SUB cmdCancel_Click
Application.Terminate
END SUB
DIM sIconPath AS STRING
txtBox.OnChange = txtBox_onChange
cmdCancel.OnClick = cmdCancel_Click
sIconPath = REPLACESUBSTR$(COMMAND$(0), sExeName, "RapidQ.ico")
frmTest.Icon = sIconPath
frmTest.SHOWMODAL
Application.Terminate
|