12 progressbars drawn with small images or with gdiplusX
A progress bar is a graphical control element used to visualize the progression of an extended computer operation, such as a download, file transfer, or installation. Sometimes, the graphic is accompanied by a textual representation of the progress in a percent format.
i have an old stock of 12 progressbars to share
1-built from small bmp images (encoded with strconv(,13) and decoded with strconv(,14) as shown in a previous post).that avoid to embed resources images physically.
2-built exclusively with gdiplusX library.
-for making the work easy ,put the gdiplusX class (.vcx+.vct) in the same working folder, save the code
below as yprogressbars12.prg and run.
-12 classes of progressbars (zprog1 to zprog12) in the code can be converted easily to visual classes (vcx) and dropped on any form.the code uses newObject (createObject) to build the container class on the form.Can extract separatly any class from the code.
-A timer animates the imgcanvas drawing or the stretched image.
-can re click the same progressbar to see another colors (if random colors implemented in the class).
-can also make the container invisible (borderwidth=0)
if you compile an exe dont forget to add in the working folder the 2 files system.drawing.h (include) and system.app .
a similar code was presented in foxite on year 2008.
Click on code to select [then copy] -click outside to deselect
publi m.yrep
m.yrep=addbs(justpath(sys(16,1)))
set defa to (yrep)
*set classlib to locfile("gdiplusX","vcx") addi
publi yform
yform=newObject("yprogress4")
*release classlib gdiplusX.vcx
yform.show
read events
retu
*
DEFINE CLASS yprogress4 AS form
Top = 0
Left = 0
Height = 400
Width = 333
ShowWindow=2
autocenter=.t.
maxbutton=.f.
borderstyle=2
backcolor=0
Caption = "progressbars"
ADD OBJECT combo1 AS ycombo WITH ;
Name = "Combo1"
ADD OBJECT edit1 AS editbox WITH ;
Name = "edit1"
PROCEDURE Init
with thisform
.setall("mousepointer",15,"commandbutton")
with .edit1
.left=10
.top=250
.width=310
.height=100
.fontsize=12
.scrollbars=0
.backstyle=0
.borderstyle=0
.forecolor=rgb(255,255,255)
.fontbold=.t.
.value="A set of 12 progressbars built with small bmps or gdiplusX"
endwith
endwith
ENDPROC
PROCEDURE DESTROY
erase (getenv('tmp')+"\ymask.bmp")
CLEA EVENTS
ENDPROC
ENDDEFINE
*
*-- EndDefine: yprogress4
**************************************************
DEFINE CLASS zprog1 AS container
Top = 36
Left = 40
Width = 217
Height = 27
SpecialEffect = 1
Visible = .F.
BackColor = RGB(0,0,0)
Name = "Container1"
ADD OBJECT image1 AS image WITH ;
Stretch = 2, ;
Height = 32, ;
Left = 2, ;
Top = 1, ;
Width = 10, ;
Name = "Image1"
ADD OBJECT timer1 AS timer WITH ;
Top = 12, ;
Left = 144, ;
Height = 23, ;
Width = 23, ;
Enabled = .F., ;
Interval = 100, ;
Name = "Timer1"
ADD OBJECT label1 AS label WITH ;
AutoSize = .T., ;
FontBold = .T., ;
FontSize = 8, ;
BackStyle = 0, ;
Caption = "", ;
Height = 16, ;
Left = 68, ;
Top = 7, ;
Width = 2, ;
ForeColor = RGB(255,255,255), ;
Name = "Label1"
PROCEDURE Init
local m.myvar
text to m.myvar noshow
Qk1SFAAAAAAAADYAAAAoAAAAKwAAACcAAAABABgAAAAAABwUAAAAAAAAAAAAAAAAAAAAAAAAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAAAAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAAAAAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAAAAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAAAAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAAAAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAAAAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAAAAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAAAAAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAAAAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAAAAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAAAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAAAAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAAAAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAAAAAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAAAAAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAAAAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAAAAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAAAAAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAAAAAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAO8AAAAAAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAO0AAAAAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAOoAAAAAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAOYAAAAAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAOEAAAAAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAANwAAAAAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAANMAAAAAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAMoAAAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAAAAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAALUAAAAAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAKoAAAAAAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAJ8AAAAAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAJQAAAAAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAIoAAAAAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAIEAAAAAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAHgAAAAAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAHIAAAAAAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAG0AAAAAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAGkAAAAAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAGYAAAAA
endtext
with this.image1
.left=0
.top=2
.height=this.height-4
.pictureval=strconv(m.myvar,14)
endwith
ENDPROC
PROCEDURE timer1.Timer
local oImg
delta=2
oIMg=this.parent.image1
oImg.left=0
oImg.width=oIMg.width+delta
this.parent.label1.caption=allt(str(100*oImg.width/this.parent.width,6,2))+" %"
if oImg.width>=this.parent.width
this.parent.visible=.f.
oImg.width=1
this.enabled=.f.
thisform.combo1.enabled=.t.
thisform.edit1.value=""
endi
ENDPROC
ENDDEFINE
*
*-- EndDefine: zprog1
**************************
DEFINE CLASS zprog2 AS container
Top = 36
Left = 40
Width = 217
Height = 38
SpecialEffect = 1
Visible = .F.
BackColor = RGB(0,0,0)
Name = "Container1"
ADD OBJECT image1 AS image WITH ;
Stretch = 2, ;
Height = 32, ;
Left = 2, ;
Top = 1, ;
Width = 10, ;
Name = "Image1"
ADD OBJECT timer1 AS timer WITH ;
Top = 12, ;
Left = 144, ;
Height = 23, ;
Width = 23, ;
Enabled = .F., ;
Interval = 100, ;
Name = "Timer1"
ADD OBJECT label1 AS label WITH ;
AutoSize = .T., ;
FontBold = .T., ;
FontSize = 8, ;
BackStyle = 0, ;
Caption = "", ;
Height = 16, ;
Left = 68, ;
Top = 7, ;
Width = 2, ;
ForeColor = RGB(255,255,255), ;
Name = "Label1"
PROCEDURE Init
local m.myvar
text to m.myvar noshow
Qk02DwAAAAAAADYAAAAoAAAAKAAAACAAAAABABgAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAUlqeAACIAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLUlqfAACLAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPUlqfAACQAACUAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTUlqhAACWAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYUlqlAACeAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfUlqqAACmAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnUlqtAACxAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwUlqzAAC8AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7Ulq4AADIAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFUlq7AADUAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPUlrBAADdAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYUlrDAADpAADhAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiUlrHAADvAADnAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoUlrKAADzAADrAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsUlrKAAD3AADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvUlrMAAD5AADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxUlrMAAD5AADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxAADxUlrKAAD3AADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvAADvUlrKAADzAADrAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsAADsUlrHAADvAADnAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoAADoUlrDAADpAADhAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiAADiUlrBAADdAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYAADYUlq7AADUAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPAADPUlq4AADIAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFAADFUlqzAAC8AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7AAC7UlqtAACxAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwAACwUlqqAACmAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnAACnUlqlAACeAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfAACfUlqhAACWAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYAACYUlqfAACQAACUAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTAACTUlqfAACLAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPAACPUlqeAACIAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACLAACL
endtext
with this.image1
.left=0
.top=2
.height=this.height-4
.pictureval=strconv(m.myvar,14)
endwith
ENDPROC
PROCEDURE timer1.Timer
local oImg
delta=2
oIMg=this.parent.image1
oImg.left=0
oImg.width=oIMg.width+delta
this.parent.label1.caption=allt(str(100*oImg.width/this.parent.width,6,2))+" %"
if oImg.width>=this.parent.width
this.parent.visible=.f.
oImg.width=1
this.enabled=.f.
thisform.combo1.enabled=.t.
thisform.edit1.value=""
endi
ENDPROC
ENDDEFINE
*
*-- EndDefine: zprog2
**************************
DEFINE CLASS zprog3 AS container
Top = 36
Left = 40
Width = 217
Height =38
SpecialEffect = 1
Visible = .F.
BackColor = RGB(0,0,0)
Name = "Container1"
ADD OBJECT image1 AS image WITH ;
Stretch = 2, ;
Height = 32, ;
Left = 2, ;
Top = 1, ;
Width = 10, ;
Name = "Image1"
ADD OBJECT timer1 AS timer WITH ;
Top = 12, ;
Left = 144, ;
Height = 23, ;
Width = 23, ;
Enabled = .F., ;
Interval = 100, ;
Name = "Timer1"
ADD OBJECT label1 AS label WITH ;
AutoSize = .T., ;
FontBold = .T., ;
FontSize = 8, ;
BackStyle = 0, ;
Caption = "", ;
Height = 16, ;
Left = 68, ;
Top = 7, ;
Width = 2, ;
ForeColor = RGB(255,255,255), ;
Name = "Label1"
PROCEDURE Init
local m.myvar
text to m.myvar noshow
Qk2aFQAAAAAAADYAAAAoAAAAMQAAACUAAAABABgAAAAAAGQVAAAAAAAAAAAAAAAAAAAAAAAAVV1fEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISAFlhYxkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQBeZmgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQAZGxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vAGpydDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwBweHpISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEgAd3+BVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWAH6GiGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZACFjY9ycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnIAi5OVfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+AJGZm4mJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiQCWnqCUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJQAmqKkm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubAJ2lp6KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogCgqKqnp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6cAoamrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAKOrra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trQChqauqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqoAoKiqp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enAJ2lp6KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogCaoqSbm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5sAlp6glJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUAJGZm4mJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiQCLk5V+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4AhY2PcnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJyAH6GiGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZAB3f4FWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlYAcHh6SEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIAGpydDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwBkbG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8AXmZoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkAFlhYxkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQBVXV8SEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIAUlpcCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLAE9XWQYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgBOVlgDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAc36BTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWTFRWAA==
endtext
with this.image1
.left=0
.top=2
.height=this.height-4
.pictureval=strconv(m.myvar,14)
endwith
ENDPROC
PROCEDURE timer1.Timer
local oImg
delta=2
oIMg=this.parent.image1
oImg.left=0
oImg.width=oIMg.width+delta
this.parent.label1.caption=allt(str(100*oImg.width/this.parent.width,6,2))+" %"
if oImg.width>=this.parent.width
this.parent.visible=.f.
oImg.width=1
this.enabled=.f.
thisform.combo1.enabled=.t.
thisform.edit1.value=""
endi
ENDPROC
ENDDEFINE
*
*-- EndDefine: zprog3
**************************
DEFINE CLASS zprog4 AS container
Top = 36
Left = 40
Width = 217
Height =38
SpecialEffect = 1
Visible = .F.
BackColor = RGB(0,0,0)
Name = "Container1"
ADD OBJECT image1 AS image WITH ;
Stretch = 2, ;
Height = 32, ;
Left = 2, ;
Top = 1, ;
Width = 10, ;
Name = "Image1"
ADD OBJECT timer1 AS timer WITH ;
Top = 12, ;
Left = 144, ;
Height = 23, ;
Width = 23, ;
Enabled = .F., ;
Interval = 100, ;
Name = "Timer1"
ADD OBJECT label1 AS label WITH ;
AutoSize = .T., ;
FontBold = .T., ;
FontSize = 8, ;
BackStyle = 0, ;
Caption = "", ;
Height = 16, ;
Left = 68, ;
Top = 7, ;
Width = 2, ;
ForeColor = RGB(255,0,0), ;
Name = "Label1"
PROCEDURE Init
local m.myvar
text to m.myvar noshow
Qk0uCwAAAAAAADYAAAAoAAAARwAAAA0AAAABABgAAAAAAPgKAAAAAAAAAAAAAAAAAAAAAAAA7+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAA////kOiPkOiPkOeOkOeOkOeOkOeOkOiPkOeO/Pz8/Pz8kOiPkOiPkOeOkOeOkOeOkOeOkOiPkOeO/Pz8/Pz8kOiPkOiPkOeOkOeOkOeOkOeOkOiPkOeO/Pz8/Pz8kOiPkOiPkOeOkOeOkOeOkOeOkOiPkOeO/Pz8/Pz8kOiPkOiPkOeOkOeOkOeOkOeOkOiPkOeO/Pz8/Pz8kOiPkOiPkOeOkOeOkOeOkOeOkOiPkOeO/Pz8/Pz8kOiPkOiPkOeOkOeOkOeOkOeOkOiPkOeO/Pz8/Pz8AAAA////d+J2eOJ2d+J1d+J1d+J1d+J2d+J2d+J1+/v7+/v7d+J2eOJ2d+J1d+J1d+J1d+J2d+J2d+J1+/v7+/v7d+J2eOJ2d+J1d+J1d+J1d+J2d+J2d+J1+/v7+/v7d+J2eOJ2d+J1d+J1d+J1d+J2d+J2d+J1+/v7+/v7d+J2eOJ2d+J1d+J1d+J1d+J2d+J2d+J1+/v7+/v7d+J2eOJ2d+J1d+J1d+J1d+J2d+J2d+J1+/v7+/v7d+J2eOJ2d+J1d+J1d+J1d+J2d+J2d+J1+/v7+/v7AAAA////Xd1bXt1bXd1bXd1bXd1bXt1bXd1bXd1b+fn5+fn5Xd1bXt1bXd1bXd1bXd1bXt1bXd1bXd1b+fn5+fn5Xd1bXt1bXd1bXd1bXd1bXt1bXd1bXd1b+fn5+fn5Xd1bXt1bXd1bXd1bXd1bXt1bXd1bXd1b+fn5+fn5Xd1bXt1bXd1bXd1bXd1bXt1bXd1bXd1b+fn5+fn5Xd1bXt1bXd1bXd1bXd1bXt1bXd1bXd1b+fn5+fn5Xd1bXt1bXd1bXd1bXd1bXt1bXd1bXd1b+fn5+fn5AAAA////RNdBRNdBRNdBRddCRNdBRddCRNdBRNdB9vb29vb2RNdBRNdBRNdBRddCRNdBRddCRNdBRNdB9vb29vb2RNdBRNdBRNdBRddCRNdBRddCRNdBRNdB9vb29vb2RNdBRNdBRNdBRddCRNdBRddCRNdBRNdB9vb29vb2RNdBRNdBRNdBRddCRNdBRddCRNdBRNdB9vb29vb2RNdBRNdBRNdBRddCRNdBRddCRNdBRNdB9vb29vb2RNdBRNdBRNdBRddCRNdBRddCRNdBRNdB9vb29vb2AAAA////MdMuMdMuMdMuMdMuMdMuMtMvMdMuMdMu8/Pz8/PzMdMuMdMuMdMuMdMuMdMuMtMvMdMuMdMu8/Pz8/PzMdMuMdMuMdMuMdMuMdMuMtMvMdMuMdMu8/Pz8/PzMdMuMdMuMdMuMdMuMdMuMtMvMdMuMdMu8/Pz8/PzMdMuMdMuMdMuMdMuMdMuMtMvMdMuMdMu8/Pz8/PzMdMuMdMuMdMuMdMuMdMuMtMvMdMuMdMu8/Pz8/PzMdMuMdMuMdMuMdMuMdMuMtMvMdMuMdMu8/Pz8/PzAAAA////ONU1ONU1ONU1ONU1ONU1N9U1ONU1ONU18fHx8fHxONU1ONU1ONU1ONU1ONU1N9U1ONU1ONU18fHx8fHxONU1ONU1ONU1ONU1ONU1N9U1ONU1ONU18fHx8fHxONU1ONU1ONU1ONU1ONU1N9U1ONU1ONU18fHx8fHxONU1ONU1ONU1ONU1ONU1N9U1ONU1ONU18fHx8fHxONU1ONU1ONU1ONU1ONU1N9U1ONU1ONU18fHx8fHxONU1ONU1ONU1ONU1ONU1N9U1ONU1ONU18fHx8fHxAAAA////UNpNUNpOUNpOUNpOUNpOUNpNUNpOUNpO9PT09PT0UNpNUNpOUNpOUNpOUNpOUNpNUNpOUNpO9PT09PT0UNpNUNpOUNpOUNpOUNpOUNpNUNpOUNpO9PT09PT0UNpNUNpOUNpOUNpOUNpOUNpNUNpOUNpO9PT09PT0UNpNUNpOUNpOUNpOUNpOUNpNUNpOUNpO9PT09PT0UNpNUNpOUNpOUNpOUNpOUNpNUNpOUNpO9PT09PT0UNpNUNpOUNpOUNpOUNpOUNpNUNpOUNpO9PT09PT0AAAA////aN9maN9maN9maN9maN9maN9maN9maN9m9vb29vb2aN9maN9maN9maN9maN9maN9maN9maN9m9vb29vb2aN9maN9maN9maN9maN9maN9maN9maN9m9vb29vb2aN9maN9maN9maN9maN9maN9maN9maN9m9vb29vb2aN9maN9maN9maN9maN9maN9maN9maN9m9vb29vb2aN9maN9maN9maN9maN9maN9maN9maN9m9vb29vb2aN9maN9maN9maN9maN9maN9maN9maN9m9vb29vb2AAAA////fuR8fuR8feN7fuR8fuR8fuR8fuR8fuR8+fn5+fn5fuR8fuR8feN7fuR8fuR8fuR8fuR8fuR8+fn5+fn5fuR8fuR8feN7fuR8fuR8fuR8fuR8fuR8+fn5+fn5fuR8fuR8feN7fuR8fuR8fuR8fuR8fuR8+fn5+fn5fuR8fuR8feN7fuR8fuR8fuR8fuR8fuR8+fn5+fn5fuR8fuR8feN7fuR8fuR8fuR8fuR8fuR8+fn5+fn5fuR8fuR8feN7fuR8fuR8fuR8fuR8fuR8+fn5+fn5AAAA////lumVlumVlemUlumVlumVlumVlumVlumV/Pz8/Pz8lumVlumVlemUlumVlumVlumVlumVlumV/Pz8/Pz8lumVlumVlemUlumVlumVlumVlumVlumV/Pz8/Pz8lumVlumVlemUlumVlumVlumVlumVlumV/Pz8/Pz8lumVlumVlemUlumVlumVlumVlumVlumV/Pz8/Pz8lumVlumVlemUlumVlumVlumVlumVlumV/Pz8/Pz8lumVlumVlemUlumVlumVlumVlumVlumV/Pz8/Pz8AAAA7+/vrO2rrO2rrO2rrO2rrO2rrO2rrO2rrO2r/Pz8/Pz8rO2rrO2rrO2rrO2rrO2rrO2rrO2rrO2r/Pz8/Pz8rO2rrO2rrO2rrO2rrO2rrO2rrO2rrO2r/Pz8/Pz8rO2rrO2rrO2rrO2rrO2rrO2rrO2rrO2r/Pz8/Pz8rO2rrO2rrO2rrO2rrO2rrO2rrO2rrO2r/Pz8/Pz8rO2rrO2rrO2rrO2rrO2rrO2rrO2rrO2r/Pz8/Pz8rO2rrO2rrO2rrO2rrO2rrO2rrO2rrO2r/Pz8/Pz8AAAA7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/vAAAA
endtext
with this.image1
.left=0
.top=2
.height=this.height-4
.pictureval=strconv(m.myvar,14)
endwith
ENDPROC
PROCEDURE timer1.Timer
local oImg
delta=2
oIMg=this.parent.image1
oImg.left=0
oImg.width=oIMg.width+delta
this.parent.label1.caption=allt(str(100*oImg.width/this.parent.width,6,2))+" %"
if oImg.width>=this.parent.width
this.parent.visible=.f.
oImg.width=1
this.enabled=.f.
thisform.combo1.enabled=.t.
thisform.edit1.value=""
endi
ENDPROC
ENDDEFINE
*
*-- EndDefine: zprog4
**************************
DEFINE CLASS zprog5 AS container
Top = 36
Left = 40
Width = 217
Height = 38
BackStyle = 0
BorderWidth = 0
SpecialEffect = 1
BackColor = RGB(0,0,0)
Visible = .F.
Name = "ycont5"
ADD OBJECT imgcanvas1 AS imgcanvas WITH ;
Height = 36, ;
Left = 3, ;
Top = 4, ;
Width = 312, ;
rendermode = 4, ;
Name = "Imgcanvas1"
ADD OBJECT timer1 AS timer WITH ;
Top = 10, ;
Left = 257, ;
Height = 23, ;
Width = 23, ;
Enabled = .F., ;
Interval = 120, ;
Name = "Timer1"
PROCEDURE Init
with this.imgcanvas1
.left=0
.width=0
.height=.height+2
endwith
ENDPROC
PROCEDURE imgcanvas1.beforedraw
LOCAL loGfx AS xfcGraphics
**************************
logfx=this.ogfx
WITH _screen.system.Drawing
loGfx.SmoothingMode = .Drawing2D.SmoothingMode.AntiAlias
this.clear(.color.black)
**************************
xpath =.Drawing2D.GraphicsPath.New()
xpath.AddRectangle(+5,+5, this.width-10,this.height-10)
Local pgb As xfcPathGradientBrush
pgb=.Drawing2d.PathGradientBrush.new(xpath)
m.ycolor1=rgb(255*rand(),255*rand(),255*rand())
m.ycolor2=rgb(255*rand(),255*rand(),255*rand())
dimension acolor(4)
acolor(1)=.color.fromRGB(m.ycolor1)
acolor(2)=.color.fromRGB(m.ycolor2)
acolor(3)=.color.yellow
acolor(4)=.color.blue
for i=1 to 4
pgb.SurroundColors(i)=acolor(i)
endfor
loGfx.Fillpath(@pgb, xpath)
pgb.Dispose()
local yrect as xfcRectangle
yrect=.rectangle.new(0,0,this.width,this.height)
pen=.pen.new(.color.red,6)
loGfx.drawRectangle(pen,yrect)
pen.dispose()
*********************
local ystring
ystring=str(100*this.width/this.parent.width,6,2)+" %"
loFont = .Font.New("tahoma", 9, .FontStyle.BoldItalic)
loSizeF = loGfx.MeasureString(ystring, loFont)
loRectangleF =_screen.system.Drawing.RectangleF.New((this.width-loSizeF.width)/2,(this.height-loSizeF.height)/2,loSizeF.Width, loSizeF.Height)
loBrush = .Drawing2D.LinearGradientBrush.New(loRectangleF,.Color.red,.Color.green,3)
if (this.width-loSizeF.width)/2>10
loGfx.DrawString(ystring, loFont,loBrush, loRectangleF)
endi
***********************
ENDWITH
return
ENDPROC
PROCEDURE imgcanvas1.setup
with this
.width=0
.height=.parent.height-4
.left=0
.top=0
endwith
ENDPROC
PROCEDURE timer1.Timer
local delta,length,oo
m.oo=this.parent.imgcanvas1
delta=2
m.oo.width=m.oo.width+delta
if m.oo.width<=this.parent.width
m.oo.draw
else
m.oo.width=this.parent.width
m.oo.draw
this.parent.visible=.f.
this.enabled=.f.
this.parent.init()
thisform.combo1.enabled=.t.
thisform.edit1.value=""
endi
ENDPROC
ENDDEFINE
*
*-- EndDefine: zprog5
***************************
DEFINE CLASS zprog6 AS container
Top = 36
Left = 40
Width = 217
Height = 38
BackStyle = 1
backcolor=0
BorderWidth = 0
specialEffect=1
borderWidth=1
Visible = .F.
Name = "ycont6"
ADD OBJECT timer1 AS timer WITH ;
Top = 12, ;
Left = 216, ;
Enabled = .F., ;
Interval = 120, ;
Name = "Timer1"
ADD OBJECT imgcanvas1 AS imgcanvas WITH ;
Height = 36, ;
Left = 9, ;
Top = 0, ;
Width = 214, ;
Name = "Imgcanvas1"
PROCEDURE Init
with this.imgcanvas1
.left=0
.width=0
.height=.parent.height-2
endwith
ENDPROC
PROCEDURE timer1.Timer
local delta,length,oo
m.oo=this.parent.imgcanvas1
delta=2
m.oo.width=m.oo.width+delta
if m.oo.width<=this.parent.width
m.oo.draw
else
m.oo.width=this.parent.width
m.oo.draw
this.parent.visible=.f.
this.enabled=.f.
this.parent.init()
thisform.combo1.enabled=.t.
thisform.edit1.value=""
endi
ENDPROC
PROCEDURE imgcanvas1.beforedraw
LOCAL loGfx5 AS xfcGraphics
*********************************************************
logfx5=this.ogfx
WITH _screen.system.Drawing
loGfx5.SmoothingMode = .Drawing2D.SmoothingMode.AntiAlias
this.clear(.color.green)
**********************************************************
m.ycolor1=rgb(255*rand(),255*rand(),255*rand())
m.ycolor2=rgb(255*rand(),255*rand(),255*rand())
color1=.color.fromRGB(m.ycolor1)
color2=.color.fromRGB(m.ycolor2)
* br = _screen.system.Drawing.drawing2d.LinearGradientBrush.New(this.Rectangle,color1,color2,0)
* br.SetBlendTriangularShape(0.5,0.75)
*loGFX5.FillRectangle(br,this.Rectangle)
*br.Dispose()
**********************
br =_screen.system.Drawing.drawing2d.LinearGradientBrush.New(this.Rectangle,.Color.Black,.Color.Black,0,.f.)
cb = .Drawing2d.ColorBlend.new(9)
for f=1 to 9
cb.Positions[f]=(f-1)/8
cb.Colors=.Color.NewArray(.Color.Red,.Color.Orange,.Color.Yellow,.Color.Green,.Color.Blue,.Color.Indigo,.Color.Violet,.color.magenta,.color.cyan)
br.InterpolationColors=cb
loGfx5.FillRectangle(br,this.Rectangle)
endfor
br.Dispose()
************************
yrect5=.rectangle.new(0,0,this.width,this.height-4)
pen=.pen.new(.color.gold,6)
*loGfx5.drawRectangle(pen,yrect5)
pen.dispose()
*********************
ystring4=str(100*this.width/this.parent.width,6,2)+" %"
loFont = .Font.New("tahoma", 9, .FontStyle.BoldItalic)
loSizeF1 = loGfx5.MeasureString(ystring4, loFont)
loRectangleF =_screen.system.Drawing.RectangleF.New((this.width-loSizeF1.width)/2,(this.height-loSizeF1.height)/2,loSizeF1.Width, loSizeF1.Height)
loBrush = .Drawing2D.LinearGradientBrush.New(loRectangleF,.Color.red,.Color.green,3)
if (this.width-loSizeF1.width)/2>10
loGfx5.DrawString(ystring4, loFont,loBrush, loRectangleF)
endi
***********************
ENDWITH
return
ENDPROC
ENDDEFINE
*
*-- EndDefine: zprog6
**************************************************
DEFINE CLASS zprog7 AS container
Top = 36
Left = 40
Width = 217
Height = 38
BackStyle = 0
BorderWidth = 1
SpecialEffect = 1
Visible = .F.
Name = "ycont7"
ADD OBJECT timer1 AS timer WITH ;
Top = 12, ;
Left = 216, ;
Height = 23, ;
Width = 23, ;
Enabled = .F., ;
Interval = 120, ;
Name = "Timer1"
ADD OBJECT imgcanvas1 AS imgcanvas WITH ;
Height = 38, ;
Left = 2, ;
Top = 2, ;
Width = 138, ;
Name = "Imgcanvas1"
PROCEDURE Init
with this.imgcanvas1
.left=0
.width=0
.height=.height+2
endwith
ENDPROC
PROCEDURE timer1.Timer
local delta,length,oo
m.oo=this.parent.imgcanvas1
delta=2
m.oo.width=m.oo.width+delta
if m.oo.width<=this.parent.width
m.oo.draw
else
m.oo.width=this.parent.width
m.oo.draw
this.parent.visible=.f.
this.enabled=.f.
this.parent.init()
thisform.combo1.enabled=.t.
thisform.edit1.value=""
endi
ENDPROC
PROCEDURE imgcanvas1.beforedraw
LOCAL loGfx7 AS xfcGraphics
*********************************************************
logfx7=this.ogfx
WITH _screen.system.Drawing
loGfx7.SmoothingMode = .Drawing2D.SmoothingMode.AntiAlias
* this.clear(.color.cyan)
m.ycolor1=rgb(255*rand(),255*rand(),255*rand())
m.ycolor2=rgb(255*rand(),255*rand(),255*rand())
color1=.color.fromRGB(m.ycolor1)
color2=.color.fromRGB(m.ycolor2)
**********************
br =_screen.system.Drawing.drawing2d.LinearGradientBrush.New(this.Rectangle,.Color.Black,.Color.Black,0,.f.)
cb = .Drawing2d.ColorBlend.new(9)
n=this.width/10
for i=1 to n
yre=.rectangle.new(0+(i-1)*n,0,n,this.height)
bb=.drawing2d.LinearGradientBrush.New(yre,.color.green,.Color.red,1)
logfx7.Fillrectangle(bb,yre)
pen=.pen.new(.color.black,1)
loGfx7.drawrectangle(pen,yre)
bb.dispose()
endfor
************************
yrect7=.rectangle.new(0,0,this.width,this.height-5)
pen=.pen.new(.color.gold,6)
loGfx7.drawRectangle(pen,yrect7)
pen.dispose()
*********************
ystring7=str(100*this.width/this.parent.width,6,2)+" %"
loFont = .Font.New("tahoma", 9, .FontStyle.BoldItalic)
loSizeF1 = loGfx7.MeasureString(ystring7, loFont)
loRectangleF =_screen.system.Drawing.RectangleF.New((this.width-loSizeF1.width)/2,(this.height-loSizeF1.height)/2,loSizeF1.Width, loSizeF1.Height)
loBrush = .Drawing2D.LinearGradientBrush.New(loRectangleF,.Color.white,.Color.white,3)
if (this.width-loSizeF1.width)/2>10
loGfx7.DrawString(ystring7, loFont,loBrush, loRectangleF)
endi
***********************
ENDWITH
return
ENDPROC
ENDDEFINE
*
*-- EndDefine: zprog7
****************************
DEFINE CLASS zprog8 AS container
Top = 36
Left = 40
Width = 217
Height = 38
BackStyle = 0
BorderWidth = 1
SpecialEffect = 1
Visible = .F.
Name = "ycont8"
ADD OBJECT timer1 AS timer WITH ;
Top = 12, ;
Left = 216, ;
Height = 23, ;
Width = 23, ;
Enabled = .F., ;
Interval = 120, ;
Name = "Timer1"
ADD OBJECT imgcanvas1 AS imgcanvas WITH ;
Height = 36, ;
Left = 1, ;
Top = 2, ;
Width = 192, ;
Name = "Imgcanvas1"
PROCEDURE Init
with this.imgcanvas1
.left=-1
.width=0
.height=.parent.height-2
endwith
ENDPROC
PROCEDURE timer1.Timer
local delta,length,oo
m.oo=this.parent.imgcanvas1
delta=2
m.oo.width=m.oo.width+delta
if m.oo.width<=this.parent.width
m.oo.draw
else
m.oo.width=this.parent.width
m.oo.draw
this.parent.visible=.f.
this.enabled=.f.
this.parent.init()
thisform.combo1.enabled=.t.
thisform.edit1.value=""
endi
ENDPROC
PROCEDURE imgcanvas1.beforedraw
LOCAL loGfx AS xfcGraphics
*********************************************************
logfx=this.ogfx
WITH _screen.system.Drawing
loGfx.SmoothingMode = .Drawing2D.SmoothingMode.AntiAlias
this.clear(.color.black)
**********************************************************
**blends
br = .drawing2d.LinearGradientBrush.New(This.Rectangle,.COLOR.red,.COLOR.black,1 ) &&,.F.)
bl=.Drawing2d.Blend.New()
bl.Factors = _Screen.System.Single.NewArray(0.1,0.5,0.8,3)
bl.Positions = _Screen.System.Single.NewArray(0.1,0.5,0.8,1)
br.Blend=bl
This.oGfx.FillRectangle(br,This.Rectangle)
br.Dispose()
************************
yrect=.rectangle.new(0,0,this.width,this.height)
pen=.pen.new(.color.gold,6)
loGfx.drawRectangle(pen,yrect)
pen.dispose()
*********************
ystring=str(100*this.width/this.parent.width,6,2)+" %"
loFont = .Font.New("tahoma", 9, .FontStyle.BoldItalic)
loSizeF1 = loGfx.MeasureString(ystring, loFont)
loRectangleF =_screen.system.Drawing.RectangleF.New((this.width-loSizeF1.width)/2,(this.height-loSizeF1.height)/2,loSizeF1.Width, loSizeF1.Height)
loBrush = .Drawing2D.LinearGradientBrush.New(loRectangleF,.Color.white,.Color.green,3)
if (this.width-loSizeF1.width)/2>10
loGfx.DrawString(ystring, loFont,loBrush, loRectangleF)
endi
***********************
ENDWITH
return
ENDPROC
ENDDEFINE
*
*-- EndDefine: zprog8
***************************
DEFINE CLASS zprog9 AS container
Top = 20
Left = 250
Width = 48
Height = 200
BackStyle = 0
BorderWidth = 1
SpecialEffect = 1
Visible = .F.
Name = "ycont9"
ADD OBJECT timer1 AS timer WITH ;
Top = 0, ;
Left = 20, ;
Height = 23, ;
Width = 23, ;
Enabled = .F., ;
Interval = 100, ;
Name = "Timer1"
ADD OBJECT imgcanvas1 AS imgcanvas WITH ;
Height = 1, ;
Left = 0, ;
Top = 36, ;
Width = 56, ;
Name = "Imgcanvas1"
PROCEDURE Init
with this.imgcanvas1
.left=2
.top=1
.width=.parent.width-4
.height=0
endwith
ENDPROC
PROCEDURE timer1.Timer
local delta,length,oo
m.oo=this.parent.imgcanvas1
m.delta=2
m.oo.height=m.oo.height+m.delta
if m.oo.height<=this.parent.height
m.oo.draw
else
m.oo.height=this.parent.height
m.oo.draw
this.parent.visible=.f.
this.enabled=.f.
this.parent.init()
thisform.combo1.enabled=.t.
thisform.edit1.value=""
endi
ENDPROC
PROCEDURE imgcanvas1.beforedraw
LOCAL alogfx AS xfcGraphics
**************************
alogfx=this.ogfx
WITH _screen.system.Drawing
alogfx.SmoothingMode = .Drawing2D.SmoothingMode.AntiAlias
this.clear(.color.black)
**************************
xpath =.Drawing2D.GraphicsPath.New()
xpath.AddRectangle(0,0, this.width,this.height)
Local pgb As xfcPathGradientBrush
pgb=.Drawing2d.PathGradientBrush.new(xpath)
m.ycolor1=rgb(255*rand(),255*rand(),255*rand())
m.ycolor2=rgb(255*rand(),255*rand(),255*rand())
dimension acolor(4)
acolor(1)=.color.fromRGB(m.ycolor1)
acolor(2)=.color.fromRGB(m.ycolor2)
acolor(3)=.color.yellow
acolor(4)=.color.blue
for i=1 to 4
pgb.SurroundColors(i)=acolor(i)
endfor
alogfx.Fillpath(@pgb, xpath)
pgb.Dispose()
*pen=.pen.new(.color.red,6)
*alogfx.drawRectangle(pen,this.rectangle)
*pen.dispose()
*********************
local ystring
ystring=str(100*this.height/this.parent.height,3,0)+"%"
loFont = .Font.New("tahoma", 7, .FontStyle.BoldItalic)
loSizeF = alogfx.MeasureString(ystring, loFont)
loRectangleF =_screen.system.Drawing.RectangleF.New((this.width-loSizeF.width)/2,(this.height-loSizeF.height)/2,loSizeF.Width, loSizeF.Height)
loBrush = .Drawing2D.LinearGradientBrush.New(loRectangleF,.Color.red,.Color.green,3)
if (this.height-loSizeF.height)/2>10
alogfx.DrawString(ystring, loFont,loBrush, loRectangleF)
endi
***********************
ENDWITH
return
ENDPROC
ENDDEFINE
*
*-- EndDefine: zprog9
*****************************
*
DEFINE CLASS zprog10 AS container
Top = 36
Left = 40
Width = 217
Height = 38
SpecialEffect = 1
Visible = .F.
BackColor = RGB(0,0,0)
Name = "ycont10"
ADD OBJECT timer1 AS timer WITH ;
Top = 12, ;
Left = 171, ;
Height = 23, ;
Width = 23, ;
Enabled = .F., ;
Interval = 100, ;
Name = "Timer1"
ADD OBJECT label1 AS label WITH ;
AutoSize = .T., ;
FontBold = .T., ;
FontSize = 8, ;
BackStyle = 0, ;
Caption = "", ;
Height = 16, ;
Left = 68, ;
Top = 7, ;
Width = 2, ;
ForeColor = RGB(255,255,255), ;
Name = "Label1"
ADD OBJECT imgcanvas1 AS imgcanvas WITH ;
Height = 36, ;
Left = 5, ;
Top = 4, ;
Width = 152, ;
Name = "Imgcanvas1"
PROCEDURE Init
with this.imgcanvas1
.left=1
.width=0
.top=2
.height=.parent.height-4
endwith
ENDPROC
PROCEDURE timer1.Timer
local delta,length,oo
m.oo=this.parent.imgcanvas1
m.delta=2
m.oo.width=m.oo.width+m.delta
if m.oo.width<=this.parent.width
m.oo.draw
else
m.oo.height=this.parent.width
m.oo.draw
this.parent.visible=.f.
this.enabled=.f.
this.parent.init()
thisform.combo1.enabled=.t.
thisform.edit1.value=""
endi
ENDPROC
PROCEDURE imgcanvas1.beforedraw
LOCAL loGfx AS xfcGraphics
*********************************************************
logfx=this.ogfx
WITH _screen.system.Drawing
loGfx.SmoothingMode = .Drawing2D.SmoothingMode.AntiAlias
this.clear(.color.black)
**********************************************************
**blends
br = .drawing2d.LinearGradientBrush.New(This.Rectangle,.COLOR.green,.COLOR.black,1 ) &&,.F.)
bl=.Drawing2d.Blend.New()
bl.Factors = _Screen.System.Single.NewArray(0.1,0.5,0.8,3)
bl.Positions = _Screen.System.Single.NewArray(0.1,0.5,0.8,1)
br.Blend=bl
This.oGfx.FillRectangle(br,This.Rectangle)
br.Dispose()
************************
yrect=.rectangle.new(0,0,this.width,this.height)
pen=.pen.new(.color.red,3)
loGfx.drawRectangle(pen,yrect)
pen.dispose()
*********************
ystring=str(100*this.width/this.parent.width,6,2)+" %"
loFont = .Font.New("tahoma", 9, .FontStyle.BoldItalic)
loSizeF1 = loGfx.MeasureString(ystring, loFont)
loRectangleF =_screen.system.Drawing.RectangleF.New((this.width-loSizeF1.width)/2,(this.height-loSizeF1.height)/2,loSizeF1.Width, loSizeF1.Height)
loBrush = .Drawing2D.LinearGradientBrush.New(loRectangleF,.Color.white,.Color.green,3)
if (this.width-loSizeF1.width)/2>10
loGfx.DrawString(ystring, loFont,loBrush, loRectangleF)
endi
***********************
ENDWITH
return
ENDPROC
ENDDEFINE
*
*-- EndDefine: zprog10
*****************************
DEFINE CLASS zprog11 AS container
Top = 36
Left = 40
Width = 217
Height = 38
SpecialEffect = 1
visible=.f.
BackColor = RGB(0,0,0)
Name = "ycont11"
ADD OBJECT timer1 AS timer WITH ;
Top = 12, ;
Left = 171, ;
Height = 23, ;
Width = 23, ;
Enabled = .F., ;
Interval = 100, ;
Name = "Timer1"
ADD OBJECT label1 AS label WITH ;
AutoSize = .T., ;
FontBold = .T., ;
FontSize = 8, ;
BackStyle = 0, ;
Caption = "", ;
Height = 16, ;
Left = 68, ;
Top = 7, ;
Width = 2, ;
ForeColor = RGB(255,255,255), ;
Name = "Label1"
ADD OBJECT imgcanvas1 AS imgcanvas WITH ;
Anchor = 0, ;
Stretch = 2, ;
Height = 36, ;
Left = 3, ;
Top = 3, ;
Width = 171, ;
visible=.t.,;
Name = "Imgcanvas1"
PROCEDURE Init
with this.imgcanvas1
.left=1
.width=0
.top=3
.height=.parent.height-6
.visible=.t.
endwith
ENDPROC
PROCEDURE timer1.Timer
local delta,oo
m.oo=this.parent.imgcanvas1
m.delta=2
m.oo.width=m.oo.width+m.delta
if m.oo.width<=this.parent.width
m.oo.draw
else
m.oo.width=this.parent.width
m.oo.draw
this.parent.visible=.f.
this.enabled=.f.
this.parent.init()
thisform.combo1.enabled=.t.
thisform.edit1.value=""
endi
ENDPROC
PROCEDURE imgcanvas1.beforedraw
This.Clear
logfx=this.ogfx
WITH _screen.system.Drawing
loGfx.SmoothingMode = .Drawing2D.SmoothingMode.AntiAlias
color1=.color.fromRGB(this.ycolor)
color2=.color.white &&fromRGB(thisform.ycolor2)
br = .drawing2d.LinearGradientBrush.New(this.Rectangle,color1,color2,1)
br.SetBlendTriangularShape(0.5,1.0)
rc=.rectangle.new(0,0,this.width,this.height)
loGFX.FillRectangle(br,rc) &&this.Rectangle)
br.Dispose()
p=.pen.new(.color.fromARGB(128,.color.black),8)
logfx.drawRectangle(p,this.rectangle)
*texte
LOCAL loFont AS xfcFont
LOCAL loBrush AS xfcLinearGradientBrush
LOCAL loRectangleF As xfcRectangleF
LOCAL loSizeF AS xfcSizeF
local ystring
ystring=str(100*rc.width/this.parent.width,6,2)+" %"
loFont = .Font.New("tahoma", 9, .FontStyle.BoldItalic)
loSizeF = loGfx.MeasureString(ystring, loFont)
loRectangleF =_screen.system.Drawing.RectangleF.New((rc.width-loSizeF.width)/2,(rc.height-loSizeF.height)/2,loSizeF.Width, loSizeF.Height)
loBrush = .Drawing2D.LinearGradientBrush.New(loRectangleF,.Color.green,.Color.red,3)
if (rc.width-loSizeF.width)/2>10
loGfx.DrawString(ystring, loFont,loBrush, loRectangleF)
endi
endwith
return
ENDPROC
PROCEDURE imgcanvas1.setup
rand(-1)
with this
.addproperty("ycolor",rgb( 255*rand(),255*rand(),255*rand()) )
endwith
ENDPROC
ENDDEFINE
*
*-- EndDefine: zprog11
*********************************************************
DEFINE CLASS zprog12 AS container
Width =300
Height = 150
Top = 5
Left = 5
SpecialEffect = 1
visible=.f.
BackColor = RGB(0,0,0)
borderwidth=0
Name = "ycont12"
ADD OBJECT timer1 AS timer WITH ;
Top = 12, ;
Left = 204, ;
Height = 23, ;
Width = 23, ;
Enabled = .F., ;
Interval = 90, ;
Name = "Timer1"
ADD OBJECT imgcanvas1 AS imgcanvas WITH ;
Anchor = 0, ;
Stretch = 2, ;
Height = 150, ;
Left = 0, ;
Top = 0, ;
Visible = .F., ;
Width = 300, ;
rendermode = 4, ;
Name = "Imgcanvas1"
PROCEDURE timer1.Timer
this.parent.imgcanvas1.delta=this.parent.imgcanvas1.delta+2
this.parent.imgcanvas1.draw
if this.parent.imgcanvas1.delta>=this.parent.imgcanvas1.width
this.enabled=.f.
this.parent.imgcanvas1.visible=.f.
thisform.combo1.enabled=.t.
endi
ENDPROC
PROCEDURE imgcanvas1.setup
this.addproperty("cas",0)
this.addproperty("colormask","")
this.addproperty("ymask","")
this.addproperty("delta",0)
this.addproperty("ycolor1",rgb(255*rand(),255*rand(),255*rand()))
this.addproperty("ycolor2",rgb(255*rand(),255*rand(),255*rand()))
this.draw
ENDPROC
PROCEDURE imgcanvas1.beforedraw
thisform.lockscreen=.t.
This.Clear
logfx=this.ogfx
WITH _screen.system.Drawing
loGfx.SmoothingMode = .Drawing2D.SmoothingMode.AntiAlias
this.clear(.color.black)
color1=.color.fromRGB(this.ycolor1) &&yellow &&
color2=.color.fromRGB(this.ycolor2) &&red &&
br = .drawing2d.LinearGradientBrush.New(this.Rectangle,color1,color2,1)
br.SetBlendTriangularShape(0.5,1.0)
rc=.rectangle.new(0,0,this.delta,this.height)
*loGFX.Fillellipse(br,rc) &&this.Rectangle)
* br.Dispose()
************************************
ypath = .Drawing2D.GraphicsPath.New()
ypath.addRectangle(rc)
logfx.fillpath(br,ypath)
br.dispose()
*************************************
p=.pen.new(.color.fromARGB(128,.color.gold),6)
logfx.drawEllipse(p,4,4,this.width-8,this.height-8)
p=.pen.new(.color.fromARGB(128,.color.blue),3)
logfx.drawEllipse(p,this.rectangle)
if this.cas=0
this.cas=1
&&capture image region mask
this.colorMask=.COLOR.cyan
br0 = .SolidBrush.New(this.colorMask)
logfx.fillellipse(br0,4,4,this.width-8,this.height-8)
lcDest=getenv('tmp')+"\ymask.bmp"
this.ymask=lcdest
this.obmp.save(lcDest,.imaging.imageformat.bmp)
br0.dispose()
endi
lobmp=.bitmap.fromfile(this.ymask)
lobmp.makeTransparent(this.colorMask)
logfx.drawImage(lobmp,this.rectangle)
*texte
LOCAL loFont AS xfcFont
LOCAL loBrush AS xfcLinearGradientBrush
LOCAL loRectangleF As xfcRectangleF
LOCAL loSizeF AS xfcSizeF
local ystring,pourc
pourc=100*this.delta/this.width
ystring=str(pourc,6,2)+" %"
loFont = .Font.New("tahoma", 20, .FontStyle.BoldItalic)
loSizeF = loGfx.MeasureString(ystring, loFont)
loRectangleF =_screen.system.Drawing.RectangleF.New((rc.width-loSizeF.width)/2,(rc.height-loSizeF.height)/2,loSizeF.Width, loSizeF.Height)
loBrush = .Drawing2D.LinearGradientBrush.New(loRectangleF,.Color.red,.Color.blue,3)
if (rc.width-loSizeF.width)/2>10
loGfx.DrawString(ystring, loFont,loBrush, loRectangleF)
endi
endwith
thisform.lockscreen=.f.
return
ENDPROC
ENDDEFINE
*
*-- EndDefine: zprog12
**************************************************
DEFINE CLASS ycombo AS combobox
Height = 25
Left = 48
Top = 200
Width = 150
Name = "Combo1"
PROCEDURE Click
* local m.cc,m.pp
* m.cc="ycont"+trans(this.value)
**messagebox(m.cc)
**try
** if !vartype( eval("thisform."+m.cc))="O"
*m.pp="zprog"+trans(this.value)
*with thisform
*.addobject(m.cc,(m.pp))
** endi
**catch
**endtry
* with eval("."+m.cc)
* .visible=.t.
* .timer1.enabled=.t.
* endwith
*endwith
********************
i=this.value
with Thisform
try
.removeobject(eval(".ycont"+trans(i)+".name"))
=eval(".ycont"+trans(i)+".visible")=.f.
catch
endtry
if inlist(i,5,6,7,8,9,10,11,12)
set classlib to gdiplusX addi
endi
do case
case i=1
.addobject("ycont1","zprog1")
.ycont1.visible=.t.
.edit1.value="this is a progressbar class built with a small encoded bmp image.see the code class.can convert to visual class. "
.edit1.refresh
.ycont1.timer1.enabled=.t.
case i=2
.addobject("ycont2","zprog2")
.ycont2.visible=.t.
.ycont2.timer1.enabled=.t.
.edit1.value="this is a progressbar class built with a small encoded bmp image.see the code class.can convert to visual class. "
.edit1.refresh
case i=3
.addobject("ycont3","zprog3")
.ycont3.visible=.t.
.edit1.value="this is a progressbar class built with a small encoded bmp image.see the code class.can convert to visual class. "
.edit1.refresh
.ycont3.timer1.enabled=.t.
case i=4
.addobject("ycont4","zprog4")
.ycont4.visible=.t.
.ycont4.timer1.enabled=.t.
.edit1.value="this is a progressbar class built with a small encoded bmp image.see the code class.can convert to visual class. "
.edit1.refresh
case i=5
.addobject("ycont5","zprog5")
.ycont5.visible=.t.
.edit1.value="this is a progressbar class built with gdiplusX +label + timer in a container.see the code class.can convert to visual class. "
.edit1.refresh
.ycont5.timer1.enabled=.t.
case i=6
.addobject("ycont6","zprog6")
.ycont6.visible=.t.
.edit1.value="this is a progressbar class built with gdiplusX +label + timer in a container.see the code class.can convert to visual class. "
.edit1.refresh
.ycont6.timer1.enabled=.t.
case i=7
.addobject("ycont7","zprog7")
.ycont7.visible=.t.
.edit1.value="this is a progressbar class built with gdiplusX +label + timer in a container.see the code class.can convert to visual class. "
.edit1.refresh
.ycont7.timer1.enabled=.t.
case i=8
.addobject("ycont8","zprog8")
.ycont8.visible=.t.
.edit1.value="this is a progressbar class built with gdiplusX +label + timer in a container.see the code class.can convert to visual class. "
.edit1.refresh
.ycont8.timer1.enabled=.t.
case i=9
.addobject("ycont9","zprog9")
.ycont9.visible=.t.
.edit1.value="this is a progressbar class built with gdiplusX +label + timer in a container.see the code class.can convert to visual class. "
.edit1.refresh
.ycont9.timer1.enabled=.t.
case i=10
.addobject("ycont10","zprog10")
.ycont10.visible=.t.
.edit1.value="this is a progressbar class built with gdiplusX +label + timer in a container.see the code class.can convert to visual class. "
.edit1.refresh
.ycont10.timer1.enabled=.t.
case i=11
.addobject("ycont11","zprog11")
.ycont11.visible=.t.
.edit1.value="this is a progressbar class built with gdiplusX +label + timer in a container and random colors.see the code class.can convert to visual class. "
.edit1.refresh
rand(-1)
.ycont11.imgcanvas1.ycolor=rgb(255*rand(),255*rand(),255*rand()) &&setup()
.ycont11.timer1.enabled=.t.
case i=12
.addobject("ycont12","zprog12")
.ycont12.visible=.t.
.edit1.value="this is a figure progressbar class built with gdiplusX +label + timer in a container and random colors.see the code class.can convert to visual class. "
.edit1.refresh
.ycont12.imgcanvas1.visible=.t.
.ycont12.timer1.enabled=.t.
endcase
if inlist(i,5,6,7,8,9,10,11,12)
release classlib gdiplusX
endi
this.enabled=.f.
endwith
*******************
ENDPROC
PROCEDURE Init
with this
for i=1 to 12
.additem("-Progressbar"+trans(i))
endfor
.listindex=1
.value=1
.style=2
endwith
ENDPROC
ENDDEFINE
*
*-- EndDefine: combo1
**************************************************
*remarks
for embedding any image as a string, can use a txt file (equivalent to image in disk space globally) with the technic :
strconv(filetostr(getpict(),13) ,save as txt file and reconvert with strconv(...,14) using pictureval image property.
can also use filetostr(getpict()) ,save as txt file) and reconvert with filetostr().
Unfortunaly in the text/endtext statement there is a limitation of line length to 8192.if up you have an error (line too long)
that why its possible for small images only.
the web actually uses the first technic too and it have not limitation for the string length.
*Important:*the code above is tested on visual foxpro 9 sp2-under windows 10 pro