In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Añadir texto a tProgressBarMod

Foro de Xailer profesional en español
Responder
Avatar de Usuario
bingen
Mensajes: 565
Registrado: Lun Jul 07, 2014 8:17 pm
Ubicación: Bilbao
Contactar:

Añadir texto a tProgressBarMod

Mensaje por bingen »

Buenas Xailer team.

Hasta ahora en las progressbar he usado mucho una sobregarga para pintar un texto dentro que indique por ejemplo el progreso: "Procesando registro 1 de 200"

He intentado aplicar la misma sobrecarga a la Progress bar moderna pero aunque no da error, ni la pinta ni hace nada de nada, no se que puede estar mal.

Una manita por favor, gracias.

//-----------------------------------------------------------------------------------------------------------------
Class TProgressBarMod From XProgressBarMOd

PROPERTY cText INIT "" //Texto a mostrar.
//Si se quiere usar numerador junto con un texto "Procesando registro %1 de %2"
//Si solo se quiere ver el porcentaje indicar como texto "%"
PROPERTY nClrText INIT clWindowText EDITOR PE_Color

METHOD WMPaint()

EndClass

//-----------------------------------------------------------------------------------------------------------------
// Sobrecarga a ProgressBar para que pueda contener un texto y opcionalmente un indice de progreso y un total
METHOD WMPaint( hDC ) CLASS TProgressBarMod
LOCAL cText

hDC := ::BeginPaint( hDC )
PrevWindowProc( ::Handle, WM_PAINT, hDC, 0 )

IF !Empty( ::cText )
If ::cText=="%"
cText:= ToString(Int(::nValue/::nMax*100))+" %"
Else
cText := StrTran( ::cText, "%1", AllTrim( ToString( ::nValue ) ) )
cText := StrTran( cText, "%2", AllTrim( ToString( ::nMax ) ) )
Endif
SetBkMode( hDC, TRANSPARENT )
SetTextColor( hDC, ::nClrText )
DrawText( hDC, cText, GetClientRect( ::Handle ), nOR( DT_CENTER, DT_VCENTER, DT_SINGLELINE ) )
ENDIF

::Super:WmPaint()

RETURN ::EndPaint( hDC )

//==============================================================================
BiSoft Desarrollo de software profesional
http://www.bisoft.es
Avatar de Usuario
bingen
Mensajes: 565
Registrado: Lun Jul 07, 2014 8:17 pm
Ubicación: Bilbao
Contactar:

Re: Añadir texto a tProgressBarMod

Mensaje por bingen »

Por cierto si pulsamos botón derecho en una ProgressBar para convertirla en una ProgressBarMOD lo hace pero a la contra no hace nada, curioso.
BiSoft Desarrollo de software profesional
http://www.bisoft.es
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Añadir texto a tProgressBarMod

Mensaje por ignacio »

Usa el evento OnPainted

Saludos
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Añadir texto a tProgressBarMod

Mensaje por ignacio »

bingen escribió: Jue Nov 17, 2022 10:02 am Por cierto si pulsamos botón derecho en una ProgressBar para convertirla en una ProgressBarMOD lo hace pero a la contra no hace nada, curioso.
Corregido. Gracias
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Responder