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.

Cmo agregar una nueva propiedad a un control Edit?

Foro público de Xailer en español
Responder
Avatar de Usuario
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?

Mensaje por Carlos Ortiz »

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.
notengo
Mensajes: 417
Registrado: Vie Oct 12, 2007 1:29 pm

Cmo agregar una nueva propiedad a un control Edit?

Mensaje por notengo »

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
Avatar de Usuario
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?

Mensaje por Carlos Ortiz »

Muchas gracias José, siempre tan atento.
Pregunta: eso de crear un componente no esta disponible en mi version de
xailer creo (1.98).
notengo
Mensajes: 417
Registrado: Vie Oct 12, 2007 1:29 pm

Cmo agregar una nueva propiedad a un control Edit?

Mensaje por notengo »

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
Avatar de Usuario
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?

Mensaje por Carlos Ortiz »

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.
notengo
Mensajes: 417
Registrado: Vie Oct 12, 2007 1:29 pm

Cmo agregar una nueva propiedad a un control Edit?

Mensaje por notengo »

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
Avatar de Usuario
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?

Mensaje por Carlos Ortiz »

"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
Responder