(http://weblogs.foxite.com/vfpimaging/archive/2011/01/21/13664.aspx)
Autor: VFPIMAGING
Traducido por: Luis Maria Guayán
FoxyPreviewer.App es una colección de clases. En su interior hay varias clases, que se pueden acceder directamente usando VFP.
Recientemente he recibido el requerimiento de mostrar como podria utilizar el CTL32 ProgressBar directamente.
!Eso es realmente simple! El comando es
NEWOBJECT()
, que nos permite acceder a las clases desde un archivo EXE o APP externo. En primer lugar el autor de esta joya, el CTL32 ProgressBar es Carlos Alloatti. Para obtener la información completa sobre cómo usarlo, por favor vaya directamente al sitio web de CTL32: www.ctl32.com
Uso:
=Dotherm(90, "Caption", "TitleBar") && Muestra la barra de progreso normal con el 90%
=DoTherm(-1, "Caption", "TitleBar") && El valor -1 en el primer parámetro muestra el efecto de marquesina
=DoTherm() && Desactiva la barra de progreso
Guardar el código de abajo como DOTHERM.PRG
* DOTHERM.PRG * =DoTherm(90, "Texto label", "Titulo") * =DoTherm(-1, "Teste2", "Titulo") && Continuo * =DoTherm() && Desactiva LPARAMETERS tnPercent, tcLabelText, tcTitleText IF NOT PEMSTATUS(_SCREEN , "oThermForm", 5) _SCREEN.ADDPROPERTY("oThermForm", "") ENDIF IF EMPTY(tnPercent) TRY _SCREEN.oThermForm.RELEASE() CATCH ENDTRY _SCREEN.oThermForm = NULL RETURN ENDIF IF TYPE("_Screen.oThermForm.Therm") <> "O" DO CreateTherm ENDIF LOCAL loThermForm AS FORM loThermForm = _SCREEN.oThermForm IF NOT EMPTY(tcLabelText) loThermForm.ThermLabel.CAPTION = tcLabelText ENDIF IF NOT EMPTY(tcTitleText) loThermForm.CAPTION = tcTitleText ENDIF IF tnPercent = -1 loThermForm.Therm.Marquee = .T. ELSE IF loThermForm.Therm.Marquee = .T. loThermForm.Therm.Marquee = .F. ENDIF loThermForm.Therm.VALUE = tnPercent ENDIF loThermForm.VISIBLE = .T. RETURN PROCEDURE CreateTherm LOCAL loForm AS FORM loForm = CREATEOBJECT("FORM") _SCREEN.oThermForm = loForm LOCAL lnBorder, liThermHeight, liThermWidth, liThermTop, liThermLeft lnBorder = 7 WITH loForm AS FORM .SCALEMODE = 3 && Pixels .HEIGHT = 48 .HALFHEIGHTCAPTION = .T. .WIDTH = 300 .AUTOCENTER = .T. .BORDERSTYLE = 3 && Fixed dialog .CONTROLBOX = .F. .CLOSABLE = .F. .MAXBUTTON = .F. .MINBUTTON = .F. .MOVABLE = .F. .ALWAYSONTOP = .T. .ALLOWOUTPUT = .F. .NEWOBJECT("Therm","ctl32_progressbar", "PR_ctl32_progressbar.vcx", LOCFILE("FoxyPreviewer.app")) .NEWOBJECT("ThermLabel", "Label") .ThermLabel.VISIBLE = .T. .ThermLabel.FONTBOLD = .T. .ThermLabel.TOP = 4 .ThermLabel.WIDTH = .WIDTH - (lnBorder * 2) .ThermLabel.ALIGNMENT = 2 && Center liThermHeight = .HEIGHT - (lnBorder * 2) - .ThermLabel.HEIGHT liThermWidth = .WIDTH - (lnBorder * 2) .VISIBLE = .T. ENDWITH liThermTop = lnBorder + 20 liThermLeft = lnBorder WITH loForm.Therm .TOP = liThermTop .LEFT = liThermLeft .HEIGHT = liThermHeight .WIDTH = liThermWidth .MarqueeSpeed = 30 .MarqueeAnimationSpeed = 30 .VISIBLE = .T. .CAPTION = "" ENDWITH ENDPROC
Gracias. mejorar el diseño.
ResponderBorrarBuenas tardes.
ResponderBorrarEl programa finaliza con un error en la siguiente linea
NEWOBJECT("Therm","ctl32_progressbar", "PR_ctl32_progressbar.vcx", LOCFILE("FoxyPreviewer.app"))
Me hace falta esos archivos?