Estoy tratando de agregar una nueva propiedad a la clase Tedit para que los
Edit obligatorios de toda la aplicación aparezcan con un color de fondo
distinto a los Edit no obligatorios, he probado varias cosas reescribiendo
la clase TEdit y no doy en el clavo. Alguna sugerencia.
Muchas gracias.
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.
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.
Cmo agregar una nueva propiedad a un control Edit?
- Carlos Ortiz
- Mensajes: 873
- Registrado: Mié Jul 01, 2009 5:44 pm
- Ubicación: Argentina - Córdoba
- Contactar:
Cmo agregar una nueva propiedad a un control Edit?
Carlos,
> Estoy tratando de agregar una nueva propiedad a la clase Tedit para que los
> Edit obligatorios de toda la aplicación aparezcan con un color de fondo
> distinto a los Edit no obligatorios, he probado varias cosas reescribiendo
> la clase TEdit y no doy en el clavo. Alguna sugerencia.
Añade este código a uno de tus PRGs (lo he escrito mirando el código de
TEdit pero no lo he probado):
CLASS TEdit FROM XEdit
PUBLISHED:
PROPERTY nClrObligatorio INIT -1 WRITE INLINE ::SetClrOblig( Value )
EDITOR PE_Color
PUBLIC:
PROPERTY oBrushObligatorio
METHOD Free()
METHOD GetCtlColor( hDC )
METHOD SetClrOblig( nClr )
ENDCLASS
METHOD Free() CLASS TEdit
IF ::oBrushObligatorio != Nil
::oBrushObligatorio:Destroy()
::oBrushObligatorio := Nil
ENDIF
RETURN Super:Free()
METHOD GetCtlColor( hDC ) CLASS TEdit
IF ::nClrObligatorio != -1
SetBkColor( hDC, ::nClrObligatorio )
RETURN ::oBrushObligatorio:Handle
ENDIF
RETURN Super:GetCtlColor( hDC )
METHOD SetClrOblig( nClr ) CLASS TEdit
IF ::oBrushObligatorio != Nil
::oBrushObligatorio:End()
::oBrushObligatorio := Nil
ENDIF
UPDATE ::FnClrObligatorio TO nClr
IF ::nClrObligatorio != -1
::oBrushObligatorio := TBrush():Create( Nil, ::nClrObligatorio )
ENDIF
::Refresh()
RETURN Nil
Aunque funcione correctamente, creo que lo mejor sería que crearas un
componente externo para ponerlo en la paleta de componentes y que puedas
cambiar sus propiedades en tiempo de diseño.
Saludos,
José Lalín
> Estoy tratando de agregar una nueva propiedad a la clase Tedit para que los
> Edit obligatorios de toda la aplicación aparezcan con un color de fondo
> distinto a los Edit no obligatorios, he probado varias cosas reescribiendo
> la clase TEdit y no doy en el clavo. Alguna sugerencia.
Añade este código a uno de tus PRGs (lo he escrito mirando el código de
TEdit pero no lo he probado):
CLASS TEdit FROM XEdit
PUBLISHED:
PROPERTY nClrObligatorio INIT -1 WRITE INLINE ::SetClrOblig( Value )
EDITOR PE_Color
PUBLIC:
PROPERTY oBrushObligatorio
METHOD Free()
METHOD GetCtlColor( hDC )
METHOD SetClrOblig( nClr )
ENDCLASS
METHOD Free() CLASS TEdit
IF ::oBrushObligatorio != Nil
::oBrushObligatorio:Destroy()
::oBrushObligatorio := Nil
ENDIF
RETURN Super:Free()
METHOD GetCtlColor( hDC ) CLASS TEdit
IF ::nClrObligatorio != -1
SetBkColor( hDC, ::nClrObligatorio )
RETURN ::oBrushObligatorio:Handle
ENDIF
RETURN Super:GetCtlColor( hDC )
METHOD SetClrOblig( nClr ) CLASS TEdit
IF ::oBrushObligatorio != Nil
::oBrushObligatorio:End()
::oBrushObligatorio := Nil
ENDIF
UPDATE ::FnClrObligatorio TO nClr
IF ::nClrObligatorio != -1
::oBrushObligatorio := TBrush():Create( Nil, ::nClrObligatorio )
ENDIF
::Refresh()
RETURN Nil
Aunque funcione correctamente, creo que lo mejor sería que crearas un
componente externo para ponerlo en la paleta de componentes y que puedas
cambiar sus propiedades en tiempo de diseño.
Saludos,
José Lalín
- Carlos Ortiz
- Mensajes: 873
- Registrado: Mié Jul 01, 2009 5:44 pm
- Ubicación: Argentina - Córdoba
- Contactar:
Cmo agregar una nueva propiedad a un control Edit?
Muchas gracias José, siempre tan atento.
Pregunta: eso de crear un componente no esta disponible en mi version de
xailer creo (1.98).
Pregunta: eso de crear un componente no esta disponible en mi version de
xailer creo (1.98).
@dbfarma
www.dbfarma.com.ar
www.dbfarma.com.ar
Cmo agregar una nueva propiedad a un control Edit?
Carlos,
> Muchas gracias José, siempre tan atento.
Un placer.
> Pregunta: eso de crear un componente no esta disponible en mi version de
> xailer creo (1.98).
Está disponible de la 2.0 en adelante.
Saludos,
José Lalín
> Muchas gracias José, siempre tan atento.
Un placer.
> Pregunta: eso de crear un componente no esta disponible en mi version de
> xailer creo (1.98).
Está disponible de la 2.0 en adelante.
Saludos,
José Lalín
- Carlos Ortiz
- Mensajes: 873
- Registrado: Mié Jul 01, 2009 5:44 pm
- Ubicación: Argentina - Córdoba
- Contactar:
Cmo agregar una nueva propiedad a un control Edit?
Gracias Jose pero realmente no es lo que busco, me parece que es mas simple,
por ejemplo poder hacer esto desde un formulario:
::oEdit1:lObligatorio:=.T.
y que cuando se visualice el control se vea con otro color en nClrPane,
seria algo similar a cuando por ejemplo hacemos ::oEdit1:cText:="PEREZ JOSE"
Muchas gracias, espero sugerencias.
por ejemplo poder hacer esto desde un formulario:
::oEdit1:lObligatorio:=.T.
y que cuando se visualice el control se vea con otro color en nClrPane,
seria algo similar a cuando por ejemplo hacemos ::oEdit1:cText:="PEREZ JOSE"
Muchas gracias, espero sugerencias.
@dbfarma
www.dbfarma.com.ar
www.dbfarma.com.ar
Cmo agregar una nueva propiedad a un control Edit?
Carlos,
a ver si ahora te he entendido bien
CLASS TEdit FROM XEdit
PUBLISHED:
PROPERTY lObligatorio INIT .F. WRITE METHOD SetOblig
PUBLIC:
METHOD SetOblig
ENDCLASS
METHOD SetOblig( Value ) CLASS TEdit
::FlObligatorio := Value
::nClrPane := IIf( Value, clRed, clWindow )
RETURN Nil
Saludos,
José Lalín
a ver si ahora te he entendido bien

CLASS TEdit FROM XEdit
PUBLISHED:
PROPERTY lObligatorio INIT .F. WRITE METHOD SetOblig
PUBLIC:
METHOD SetOblig
ENDCLASS
METHOD SetOblig( Value ) CLASS TEdit
::FlObligatorio := Value
::nClrPane := IIf( Value, clRed, clWindow )
RETURN Nil
Saludos,
José Lalín
- Carlos Ortiz
- Mensajes: 873
- Registrado: Mié Jul 01, 2009 5:44 pm
- Ubicación: Argentina - Córdoba
- Contactar:
Cmo agregar una nueva propiedad a un control Edit?
"José Lalín" <notengo@correo.com> escribió en el mensaje
news:49b82b05$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>
> Carlos,
>
> a ver si ahora te he entendido bien
>
> CLASS TEdit FROM XEdit
>
> PUBLISHED:
> PROPERTY lObligatorio INIT .F. WRITE METHOD SetOblig
>
> PUBLIC:
> METHOD SetOblig
>
> ENDCLASS
>
> METHOD SetOblig( Value ) CLASS TEdit
>
> ::FlObligatorio := Value
> ::nClrPane := IIf( Value, clRed, clWindow )
>
> RETURN Nil
>
> Saludos,
> José Lalín
news:49b82b05$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>
> Carlos,
>
> a ver si ahora te he entendido bien

>
> CLASS TEdit FROM XEdit
>
> PUBLISHED:
> PROPERTY lObligatorio INIT .F. WRITE METHOD SetOblig
>
> PUBLIC:
> METHOD SetOblig
>
> ENDCLASS
>
> METHOD SetOblig( Value ) CLASS TEdit
>
> ::FlObligatorio := Value
> ::nClrPane := IIf( Value, clRed, clWindow )
>
> RETURN Nil
>
> Saludos,
> José Lalín
@dbfarma
www.dbfarma.com.ar
www.dbfarma.com.ar