📄 scctext.prg
字号:
aStruct[27, 3] = 5
aStruct[27, 4] = 0
aStruct[28, 1] = "PENSIZE"
aStruct[28, 2] = "N"
aStruct[28, 3] = 5
aStruct[28, 4] = 0
aStruct[29, 1] = "PENPAT"
aStruct[29, 2] = "N"
aStruct[29, 3] = 5
aStruct[29, 4] = 0
aStruct[30, 1] = "FILLPAT"
aStruct[30, 2] = "N"
aStruct[30, 3] = 5
aStruct[30, 4] = 0
aStruct[31, 1] = "FONTFACE"
aStruct[31, 2] = "M"
aStruct[31, 3] = 4
aStruct[31, 4] = 0
aStruct[32, 1] = "FONTSTYLE"
aStruct[32, 2] = "N"
aStruct[32, 3] = 3
aStruct[32, 4] = 0
aStruct[33, 1] = "FONTSIZE"
aStruct[33, 2] = "N"
aStruct[33, 3] = 3
aStruct[33, 4] = 0
aStruct[34, 1] = "MODE"
aStruct[34, 2] = "N"
aStruct[34, 3] = 3
aStruct[34, 4] = 0
aStruct[35, 1] = "RULER"
aStruct[35, 2] = "N"
aStruct[35, 3] = 1
aStruct[35, 4] = 0
aStruct[36, 1] = "RULERLINES"
aStruct[36, 2] = "N"
aStruct[36, 3] = 1
aStruct[36, 4] = 0
aStruct[37, 1] = "GRID"
aStruct[37, 2] = "L"
aStruct[37, 3] = 1
aStruct[37, 4] = 0
aStruct[38, 1] = "GRIDV"
aStruct[38, 2] = "N"
aStruct[38, 3] = 2
aStruct[38, 4] = 0
aStruct[39, 1] = "GRIDH"
aStruct[39, 2] = "N"
aStruct[39, 3] = 2
aStruct[39, 4] = 0
aStruct[40, 1] = "FLOAT"
aStruct[40, 2] = "L"
aStruct[40, 3] = 1
aStruct[40, 4] = 0
aStruct[41, 1] = "STRETCH"
aStruct[41, 2] = "L"
aStruct[41, 3] = 1
aStruct[41, 4] = 0
aStruct[42, 1] = "STRETCHTOP"
aStruct[42, 2] = "L"
aStruct[42, 3] = 1
aStruct[42, 4] = 0
aStruct[43, 1] = "TOP"
aStruct[43, 2] = "L"
aStruct[43, 3] = 1
aStruct[43, 4] = 0
aStruct[44, 1] = "BOTTOM"
aStruct[44, 2] = "L"
aStruct[44, 3] = 1
aStruct[44, 4] = 0
aStruct[45, 1] = "SUPTYPE"
aStruct[45, 2] = "N"
aStruct[45, 3] = 1
aStruct[45, 4] = 0
aStruct[46, 1] = "SUPREST"
aStruct[46, 2] = "N"
aStruct[46, 3] = 1
aStruct[46, 4] = 0
aStruct[47, 1] = "NOREPEAT"
aStruct[47, 2] = "L"
aStruct[47, 3] = 1
aStruct[47, 4] = 0
aStruct[48, 1] = "RESETRPT"
aStruct[48, 2] = "N"
aStruct[48, 3] = 2
aStruct[48, 4] = 0
aStruct[49, 1] = "PAGEBREAK"
aStruct[49, 2] = "L"
aStruct[49, 3] = 1
aStruct[49, 4] = 0
aStruct[50, 1] = "COLBREAK"
aStruct[50, 2] = "L"
aStruct[50, 3] = 1
aStruct[50, 4] = 0
aStruct[51, 1] = "RESETPAGE"
aStruct[51, 2] = "L"
aStruct[51, 3] = 1
aStruct[51, 4] = 0
aStruct[52, 1] = "GENERAL"
aStruct[52, 2] = "N"
aStruct[52, 3] = 3
aStruct[52, 4] = 0
aStruct[53, 1] = "SPACING"
aStruct[53, 2] = "N"
aStruct[53, 3] = 3
aStruct[53, 4] = 0
aStruct[54, 1] = "DOUBLE"
aStruct[54, 2] = "L"
aStruct[54, 3] = 1
aStruct[54, 4] = 0
aStruct[55, 1] = "SWAPHEADER"
aStruct[55, 2] = "L"
aStruct[55, 3] = 1
aStruct[55, 4] = 0
aStruct[56, 1] = "SWAPFOOTER"
aStruct[56, 2] = "L"
aStruct[56, 3] = 1
aStruct[56, 4] = 0
aStruct[57, 1] = "EJECTBEFOR"
aStruct[57, 2] = "L"
aStruct[57, 3] = 1
aStruct[57, 4] = 0
aStruct[58, 1] = "EJECTAFTER"
aStruct[58, 2] = "L"
aStruct[58, 3] = 1
aStruct[58, 4] = 0
aStruct[59, 1] = "PLAIN"
aStruct[59, 2] = "L"
aStruct[59, 3] = 1
aStruct[59, 4] = 0
aStruct[60, 1] = "SUMMARY"
aStruct[60, 2] = "L"
aStruct[60, 3] = 1
aStruct[60, 4] = 0
aStruct[61, 1] = "ADDALIAS"
aStruct[61, 2] = "L"
aStruct[61, 3] = 1
aStruct[61, 4] = 0
aStruct[62, 1] = "OFFSET"
aStruct[62, 2] = "N"
aStruct[62, 3] = 3
aStruct[62, 4] = 0
aStruct[63, 1] = "TOPMARGIN"
aStruct[63, 2] = "N"
aStruct[63, 3] = 3
aStruct[63, 4] = 0
aStruct[64, 1] = "BOTMARGIN"
aStruct[64, 2] = "N"
aStruct[64, 3] = 3
aStruct[64, 4] = 0
aStruct[65, 1] = "TOTALTYPE"
aStruct[65, 2] = "N"
aStruct[65, 3] = 2
aStruct[65, 4] = 0
aStruct[66, 1] = "RESETTOTAL"
aStruct[66, 2] = "N"
aStruct[66, 3] = 2
aStruct[66, 4] = 0
aStruct[67, 1] = "RESOID"
aStruct[67, 2] = "N"
aStruct[67, 3] = 3
aStruct[67, 4] = 0
aStruct[68, 1] = "CURPOS"
aStruct[68, 2] = "L"
aStruct[68, 3] = 1
aStruct[68, 4] = 0
aStruct[69, 1] = "SUPALWAYS"
aStruct[69, 2] = "L"
aStruct[69, 3] = 1
aStruct[69, 4] = 0
aStruct[70, 1] = "SUPOVFLOW"
aStruct[70, 2] = "L"
aStruct[70, 3] = 1
aStruct[70, 4] = 0
aStruct[71, 1] = "SUPRPCOL"
aStruct[71, 2] = "N"
aStruct[71, 3] = 1
aStruct[71, 4] = 0
aStruct[72, 1] = "SUPGROUP"
aStruct[72, 2] = "N"
aStruct[72, 3] = 2
aStruct[72, 4] = 0
aStruct[73, 1] = "SUPVALCHNG"
aStruct[73, 2] = "L"
aStruct[73, 3] = 1
aStruct[73, 4] = 0
aStruct[74, 1] = "SUPEXPR"
aStruct[74, 2] = "M"
aStruct[74, 3] = 4
aStruct[74, 4] = 0
aStruct[75, 1] = "USER"
aStruct[75, 2] = "M"
aStruct[75, 3] = 4
aStruct[75, 4] = 0
endproc
enddefine
DEFINE CLASS thermometer AS form
Top = 196
Left = 142
Height = 88
Width = 356
AutoCenter = .T.
BackColor = RGB(192,192,192)
BorderStyle = 0
Caption = ""
Closable = .F.
ControlBox = .F.
MaxButton = .F.
MinButton = .F.
Movable = .F.
AlwaysOnTop = .F.
ipercentage = 0
iBasis = 0
ccurrenttask = ''
shpthermbarmaxwidth = 322
cthermref = ""
Name = "thermometer"
ADD OBJECT shape10 AS shape WITH ;
BorderColor = RGB(128,128,128), ;
Height = 81, ;
Left = 3, ;
Top = 3, ;
Width = 1, ;
Name = "Shape10"
ADD OBJECT shape9 AS shape WITH ;
BorderColor = RGB(128,128,128), ;
Height = 1, ;
Left = 3, ;
Top = 3, ;
Width = 349, ;
Name = "Shape9"
ADD OBJECT shape8 AS shape WITH ;
BorderColor = RGB(255,255,255), ;
Height = 82, ;
Left = 352, ;
Top = 3, ;
Width = 1, ;
Name = "Shape8"
ADD OBJECT shape7 AS shape WITH ;
BorderColor = RGB(255,255,255), ;
Height = 1, ;
Left = 3, ;
Top = 84, ;
Width = 350, ;
Name = "Shape7"
ADD OBJECT shape6 AS shape WITH ;
BorderColor = RGB(128,128,128), ;
Height = 86, ;
Left = 354, ;
Top = 1, ;
Width = 1, ;
Name = "Shape6"
ADD OBJECT shape4 AS shape WITH ;
BorderColor = RGB(128,128,128), ;
Height = 1, ;
Left = 1, ;
Top = 86, ;
Width = 354, ;
Name = "Shape4"
ADD OBJECT shape3 AS shape WITH ;
BorderColor = RGB(255,255,255), ;
Height = 85, ;
Left = 1, ;
Top = 1, ;
Width = 1, ;
Name = "Shape3"
ADD OBJECT shape2 AS shape WITH ;
BorderColor = RGB(255,255,255), ;
Height = 1, ;
Left = 1, ;
Top = 1, ;
Width = 353, ;
Name = "Shape2"
ADD OBJECT shape1 AS shape WITH ;
BackStyle = 0, ;
Height = 88, ;
Left = 0, ;
Top = 0, ;
Width = 356, ;
Name = "Shape1"
ADD OBJECT shape5 AS shape WITH ;
BorderStyle = 0, ;
FillColor = RGB(192,192,192), ;
FillStyle = 0, ;
Height = 15, ;
Left = 17, ;
Top = 47, ;
Width = 322, ;
Name = "Shape5"
ADD OBJECT lbltitle AS label WITH ;
FontName = WIN32FONT, ;
FontSize = 8, ;
BackStyle = 0, ;
BackColor = RGB(192,192,192), ;
Caption = "", ;
Height = 16, ;
Left = 18, ;
Top = 14, ;
Width = 319, ;
WordWrap = .F., ;
Name = "lblTitle"
ADD OBJECT lbltask AS label WITH ;
FontName = WIN32FONT, ;
FontSize = 8, ;
BackStyle = 0, ;
BackColor = RGB(192,192,192), ;
Caption = "", ;
Height = 16, ;
Left = 18, ;
Top = 27, ;
Width = 319, ;
WordWrap = .F., ;
Name = "lblTask"
ADD OBJECT shpthermbar AS shape WITH ;
BorderStyle = 0, ;
FillColor = RGB(128,128,128), ;
FillStyle = 0, ;
Height = 16, ;
Left = 17, ;
Top = 46, ;
Width = 0, ;
Name = "shpThermBar"
ADD OBJECT lblpercentage AS label WITH ;
FontName = WIN32FONT, ;
FontSize = 8, ;
BackStyle = 0, ;
Caption = "0%", ;
Height = 13, ;
Left = 170, ;
Top = 47, ;
Width = 16, ;
Name = "lblPercentage"
ADD OBJECT lblpercentage2 AS label WITH ;
FontName = WIN32FONT, ;
FontSize = 8, ;
BackColor = RGB(0,0,255), ;
BackStyle = 0, ;
Caption = "Label1", ;
ForeColor = RGB(255,255,255), ;
Height = 13, ;
Left = 170, ;
Top = 47, ;
Width = 0, ;
Name = "lblPercentage2"
ADD OBJECT shape11 AS shape WITH ;
BorderColor = RGB(128,128,128), ;
Height = 1, ;
Left = 16, ;
Top = 45, ;
Width = 322, ;
Name = "Shape11"
ADD OBJECT shape12 AS shape WITH ;
BorderColor = RGB(255,255,255), ;
Height = 1, ;
Left = 16, ;
Top = 61, ;
Width = 323, ;
Name = "Shape12"
ADD OBJECT shape13 AS shape WITH ;
BorderColor = RGB(128,128,128), ;
Height = 16, ;
Left = 16, ;
Top = 45, ;
Width = 1, ;
Name = "Shape13"
ADD OBJECT shape14 AS shape WITH ;
BorderColor = RGB(255,255,255), ;
Height = 17, ;
Left = 338, ;
Top = 45, ;
Width = 1, ;
Name = "Shape14"
ADD OBJECT lblescapemessage AS label WITH ;
FontBold = .F., ;
FontName = WIN32FONT, ;
FontSize = 8, ;
Alignment = 2, ;
BackStyle = 0, ;
BackColor = RGB(192,192,192), ;
Caption = "", ;
Height = 14, ;
Left = 17, ;
Top = 68, ;
Width = 322, ;
WordWrap = .F., ;
Name = "lblEscapeMessage"
PROCEDURE complete
* This is the default complete message
parameters m.cTask
private iSeconds
if parameters() = 0
m.cTask = THERMCOMPLETE_LOC
endif
this.Update(100,m.cTask)
ENDPROC
procedure UpdateTaskMessage
* Update the task message only, used when converting binary data
parameters cTask
this.cCurrentTask = m.cTask
this.lblTask.Caption = this.cCurrentTask
endproc
PROCEDURE update
* m.iProgress is the percentage complete
* m.cTask is displayed on the second line of the window
parameters iProgress, cTask
if parameters() >= 2 .and. type('m.cTask') = 'C'
* If we're specifically passed a null string, clear the current task,
* otherwise leave it alone
this.cCurrentTask = m.cTask
endif
if ! this.lblTask.Caption == this.cCurrentTask
this.lblTask.Caption = this.cCurrentTask
endif
if this.iBasis <> 0
* interpret m.iProgress in terms of this.iBasis
m.iPercentage = int((m.iProgress / this.iBasis) * 100)
else
m.iPercentage = m.iProgress
endif
m.iPercentage = min(100,max(0,m.iPercentage))
if m.iPercentage = this.iPercentage
RETURN
endif
if len(alltrim(str(m.iPercentage,3)))<>len(alltrim(str(this.iPercentage,3)))
iAvgCharWidth=fontmetric(6,this.lblPercentage.FontName, ;
this.lblPercentage.FontSize, ;
iif(this.lblPercentage.FontBold,'B','')+ ;
iif(this.lblPercentage.FontItalic,'I',''))
this.lblPercentage.Width=txtwidth(alltrim(str(m.iPercentage,3)) + '%', ;
this.lblPercentage.FontName,this.lblPercentage.FontSize, ;
iif(this.lblPercentage.FontBold,'B','')+ ;
iif(this.lblPercentage.FontItalic,'I','')) * iAvgCharWidth
this.lblPercentage.Left=int((this.shpThermBarMaxWidth- ;
this.lblPercentage.Width) / 2)+this.shpThermBar.Left-1
this.lblPercentage2.Left=this.lblPercentage.Left
endif
this.shpThermBar.Width = int((this.shpThermBarMaxWidth)*m.iPercentage/100)
this.lblPercentage.Caption = alltrim(str(m.iPercentage,3)) + '%'
this.lblPercentage2.Caption = this.lblPercentage.Caption
if this.shpThermBar.Left + this.shpThermBar.Width -1 >= ;
this.lblPercentage2.Left
if this.shpThermBar.Left + this.shpThermBar.Width - 1 >= ;
this.lblPercentage2.Left + this.lblPercentage.Width - 1
this.lblPercentage2.Width = this.lblPercentage.Width
else
this.lblPercentage2.Width = ;
this.shpThermBar.Left + this.shpThermBar.Width - ;
this.lblPercentage2.Left - 1
endif
else
this.lblPercentage2.Width = 0
endif
this.iPercentage = m.iPercentage
ENDPROC
PROCEDURE Init
* m.cTitle is displayed on the first line of the window
* m.iInterval is the frequency used for updating the thermometer
parameters cTitle, iInterval
this.lblTitle.Caption = iif(empty(m.cTitle),'',m.cTitle)
this.shpThermBar.FillColor = rgb(128,128,128)
local cColor
* Check to see if the fontmetrics for MS Sans Serif matches
* those on the system developed. If not, switch to Arial.
* The RETURN value indicates whether the font was changed.
if fontmetric(1, WIN32FONT, 8, '') <> 13 .or. ;
fontmetric(4, WIN32FONT, 8, '') <> 2 .or. ;
fontmetric(6, WIN32FONT, 8, '') <> 5 .or. ;
fontmetric(7, WIN32FONT, 8, '') <> 11
this.SetAll('FontName', WIN95FONT)
endif
m.cColor = rgbscheme(1, 2)
m.cColor = 'rgb(' + substr(m.cColor, at(',', m.cColor, 3) + 1)
this.BackColor = &cColor
this.Shape5.FillColor = &cColor
ENDPROC
ENDDEFINE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -