Barra de Progreso
Me gustarÃa saber como puedo hacer para trabajar con barra de progresos en vfp 6.0
Desde ya Muchas Gracias
Desde ya Muchas Gracias
Israel Ortiz escribió:
maxregistros= 130 && número arbitrario > 0
lo=CREATEOBJECT("Termometro","Procesando",maxregistros)
lo.SHOW(2)
FOR i=1 TO maxregistros
lo.actualizar(i)
INKEY(.02)
for y=1 to 200
endfor
ENDFOR
lo=.NULL.
RETURN
*--------------------------------------
* Definición de la clase termometro
*--------------------------------------
DEFINE CLASS termometro AS FORM
DOCREATE = .T.
HEIGHT = 72
WIDTH = 375
BORDERSTYLE = 2
TITLEBAR = 0
WINDOWTYPE = 0
AUTOCENTER = .T.
NAME = "Termometro"
anchoaux = 0
maxnum= 0 && Nueva propiedad: guarda el número máximo de Ãtems a procesar
*--
PROCEDURE INIT
LPARAMETERS tctitulo, canttotal
SYS(2002)
THIS.crearobjetos(tctitulo,canttotal)
THIS.anchoaux = THIS.CNT.CNT.WIDTH
THIS.maxnum=canttotal
THIS.actualizar(0)
ENDPROC
*--
PROCEDURE DESTROY
SYS(2002,1)
ENDPROC
*--
PROCEDURE actualizar
PARAMETERS tnporc
porciento= tnporc*100/THIS.maxnum
tnporc = MAX(MIN(tnporc,THIS.maxnum),0)
THIS.CNT.CNT.WIDTH = THIS.anchoaux * tnporc /THIS.maxnum
STORE TRANSFORM(porciento,"999")+"%" TO THIS.CNT.lbl.CAPTION, ;
THIS.CNT.CNT.lbl.CAPTION
THIS.DRAW
ENDPROC
*--
PROCEDURE crearobjetos
LPARAMETERS tctitulo, canttotal
THIS.ADDOBJECT("lblTitulo","label")
WITH THIS.lbltitulo
.FONTBOLD = .T.
.ALIGNMENT = 2
.CAPTION = IIF(EMPTY(tctitulo),"En progreso ...",tctitulo)
.LEFT = 0
.TOP = 10
.WIDTH = 375
.VISIBLE = .T.
ENDWITH
THIS.ADDOBJECT("cnt","container")
WITH THIS.CNT
.TOP = 36
.LEFT = 9
.WIDTH = 360
.HEIGHT = 26
.SPECIALEFFECT = 1
.BACKCOLOR = RGB(255,255,255)
.VISIBLE = .T.
.ADDOBJECT("lbl","label")
WITH .lbl
.FONTBOLD = .T.
.ALIGNMENT = 2
.BACKSTYLE = 0
.CAPTION = "100%"
.HEIGHT = 20
.LEFT = 0
.TOP = 6
.WIDTH = 360
.VISIBLE = .T.
ENDWITH
.ADDOBJECT("cnt","container")
WITH .CNT
.TOP = 2
.LEFT = 2
.WIDTH = 356
.HEIGHT = 22
.BORDERWIDTH = 0
.BACKCOLOR = RGB(0,0,255)
.ADDOBJECT("lbl","label")
.VISIBLE = .T.
WITH .lbl
.FONTBOLD = .T.
.ALIGNMENT = 2
.BACKSTYLE = 0
.CAPTION = "100%"
.HEIGHT = 20
.LEFT = 0
.TOP = 4
.WIDTH = 356
.FORECOLOR = RGB(255,255,255)
.VISIBLE = .T.
ENDWITH
ENDWITH
ENDWITH
ENDPROC
ENDDEFINE
maxregistros= 130 && número arbitrario > 0
lo=CREATEOBJECT("Termometro","Procesando",maxregistros)
lo.SHOW(2)
FOR i=1 TO maxregistros
lo.actualizar(i)
INKEY(.02)
for y=1 to 200
endfor
ENDFOR
lo=.NULL.
RETURN
*--------------------------------------
* Definición de la clase termometro
*--------------------------------------
DEFINE CLASS termometro AS FORM
DOCREATE = .T.
HEIGHT = 72
WIDTH = 375
BORDERSTYLE = 2
TITLEBAR = 0
WINDOWTYPE = 0
AUTOCENTER = .T.
NAME = "Termometro"
anchoaux = 0
maxnum= 0 && Nueva propiedad: guarda el número máximo de Ãtems a procesar
*--
PROCEDURE INIT
LPARAMETERS tctitulo, canttotal
SYS(2002)
THIS.crearobjetos(tctitulo,canttotal)
THIS.anchoaux = THIS.CNT.CNT.WIDTH
THIS.maxnum=canttotal
THIS.actualizar(0)
ENDPROC
*--
PROCEDURE DESTROY
SYS(2002,1)
ENDPROC
*--
PROCEDURE actualizar
PARAMETERS tnporc
porciento= tnporc*100/THIS.maxnum
tnporc = MAX(MIN(tnporc,THIS.maxnum),0)
THIS.CNT.CNT.WIDTH = THIS.anchoaux * tnporc /THIS.maxnum
STORE TRANSFORM(porciento,"999")+"%" TO THIS.CNT.lbl.CAPTION, ;
THIS.CNT.CNT.lbl.CAPTION
THIS.DRAW
ENDPROC
*--
PROCEDURE crearobjetos
LPARAMETERS tctitulo, canttotal
THIS.ADDOBJECT("lblTitulo","label")
WITH THIS.lbltitulo
.FONTBOLD = .T.
.ALIGNMENT = 2
.CAPTION = IIF(EMPTY(tctitulo),"En progreso ...",tctitulo)
.LEFT = 0
.TOP = 10
.WIDTH = 375
.VISIBLE = .T.
ENDWITH
THIS.ADDOBJECT("cnt","container")
WITH THIS.CNT
.TOP = 36
.LEFT = 9
.WIDTH = 360
.HEIGHT = 26
.SPECIALEFFECT = 1
.BACKCOLOR = RGB(255,255,255)
.VISIBLE = .T.
.ADDOBJECT("lbl","label")
WITH .lbl
.FONTBOLD = .T.
.ALIGNMENT = 2
.BACKSTYLE = 0
.CAPTION = "100%"
.HEIGHT = 20
.LEFT = 0
.TOP = 6
.WIDTH = 360
.VISIBLE = .T.
ENDWITH
.ADDOBJECT("cnt","container")
WITH .CNT
.TOP = 2
.LEFT = 2
.WIDTH = 356
.HEIGHT = 22
.BORDERWIDTH = 0
.BACKCOLOR = RGB(0,0,255)
.ADDOBJECT("lbl","label")
.VISIBLE = .T.
WITH .lbl
.FONTBOLD = .T.
.ALIGNMENT = 2
.BACKSTYLE = 0
.CAPTION = "100%"
.HEIGHT = 20
.LEFT = 0
.TOP = 4
.WIDTH = 356
.FORECOLOR = RGB(255,255,255)
.VISIBLE = .T.
ENDWITH
ENDWITH
ENDWITH
ENDPROC
ENDDEFINE
