Jose,
veo que el formato del TDateEdit funciona correctamente, ahora bien,...
¿Le podrías poner una propiedad para hacer visible o no la "flechita" para
que aparezca el calendario???
Ásí tendríamos un Edit con formato fecha, idéntico al de clipper que tanto
estamos acostumbrados, y para los que no necesitamos de "birguerrias" nos
funciona perfectamente.
¿Para que sirve lHScroll???... Igual esa sería la función a
activar/desactivar ¿?
Gracias.
Un Saludo,
Xevi.
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.
TDateEdit
TDateEdit
Xevi,
> veo que el formato del TDateEdit funciona correctamente, ahora bien,...
> ¿Le podrías poner una propiedad para hacer visible o no la "flechita" para
> que aparezca el calendario???
> Ásí tendríamos un Edit con formato fecha, idéntico al de clipper que tanto
> estamos acostumbrados, y para los que no necesitamos de "birguerrias" nos
> funciona perfectamente.
En ese caso, usa directamente un TMaskEdit, con cPicture = "99/99/9999". De
hecho, TDateEdit está derivado de TMaskEdit, y es esta última quien controla
casi todo.
> ¿Para que sirve lHScroll???... Igual esa sería la función a
> activar/desactivar ¿?
En TMaskEdit tiene sentido, pero en TDateEdit no. Simplemente se nos ha
pasado quitarla. Gracias por el aviso.
--
Un saludo,
José F. Giménez
> veo que el formato del TDateEdit funciona correctamente, ahora bien,...
> ¿Le podrías poner una propiedad para hacer visible o no la "flechita" para
> que aparezca el calendario???
> Ásí tendríamos un Edit con formato fecha, idéntico al de clipper que tanto
> estamos acostumbrados, y para los que no necesitamos de "birguerrias" nos
> funciona perfectamente.
En ese caso, usa directamente un TMaskEdit, con cPicture = "99/99/9999". De
hecho, TDateEdit está derivado de TMaskEdit, y es esta última quien controla
casi todo.
> ¿Para que sirve lHScroll???... Igual esa sería la función a
> activar/desactivar ¿?
En TMaskEdit tiene sentido, pero en TDateEdit no. Simplemente se nos ha
pasado quitarla. Gracias por el aviso.
--
Un saludo,
José F. Giménez
TDateEdit
Jose,
Bien, pero... ¿y lo de validación de fecha??? no quiero que salga del Edit con una fecha no válida...
METHOD MaskEdit1Exit( oSender, oNextCtl ) CLASS TFrmBrowseCMOV
LOCAL dValue := ::oMaskEdit1:Value
If Day( ::oMaskEdit1:Value ) = 0
::oMaskEdit1:SetFocus()
::oMaskEdit1:Value := dValue
EndIf
RETURN Nil
Pierde el valor de la fecha introducida, y me la deja en blanco...
Lo que pretendo es que cuando se introduzca una fecha no válida, me vuelva a preguntar la fecha, pero eso si, mostrándome la fecha que me da error,... para verificarla, claro.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje news:42c8ea59$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
>> veo que el formato del TDateEdit funciona correctamente, ahora bien,...
>> ¿Le podrías poner una propiedad para hacer visible o no la "flechita" para
>> que aparezca el calendario???
>> ísí tendríamos un Edit con formato fecha, idéntico al de clipper que tanto
>> estamos acostumbrados, y para los que no necesitamos de "birguerrias" nos
>> funciona perfectamente.
>
> En ese caso, usa directamente un TMaskEdit, con cPicture = "99/99/9999". De
> hecho, TDateEdit está derivado de TMaskEdit, y es esta última quien controla
> casi todo.
>
>
>> ¿Para que sirve lHScroll???... Igual esa sería la función a
>> activar/desactivar ¿?
>
> En TMaskEdit tiene sentido, pero en TDateEdit no. Simplemente se nos ha
> pasado quitarla. Gracias por el aviso.
>
> --
> Un saludo,
>
> José F. Giménez
>
>
--
Bien, pero... ¿y lo de validación de fecha??? no quiero que salga del Edit con una fecha no válida...
METHOD MaskEdit1Exit( oSender, oNextCtl ) CLASS TFrmBrowseCMOV
LOCAL dValue := ::oMaskEdit1:Value
If Day( ::oMaskEdit1:Value ) = 0
::oMaskEdit1:SetFocus()
::oMaskEdit1:Value := dValue
EndIf
RETURN Nil
Pierde el valor de la fecha introducida, y me la deja en blanco...
Lo que pretendo es que cuando se introduzca una fecha no válida, me vuelva a preguntar la fecha, pero eso si, mostrándome la fecha que me da error,... para verificarla, claro.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje news:42c8ea59$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
>> veo que el formato del TDateEdit funciona correctamente, ahora bien,...
>> ¿Le podrías poner una propiedad para hacer visible o no la "flechita" para
>> que aparezca el calendario???
>> ísí tendríamos un Edit con formato fecha, idéntico al de clipper que tanto
>> estamos acostumbrados, y para los que no necesitamos de "birguerrias" nos
>> funciona perfectamente.
>
> En ese caso, usa directamente un TMaskEdit, con cPicture = "99/99/9999". De
> hecho, TDateEdit está derivado de TMaskEdit, y es esta última quien controla
> casi todo.
>
>
>> ¿Para que sirve lHScroll???... Igual esa sería la función a
>> activar/desactivar ¿?
>
> En TMaskEdit tiene sentido, pero en TDateEdit no. Simplemente se nos ha
> pasado quitarla. Gracias por el aviso.
>
> --
> Un saludo,
>
> José F. Giménez
>
>
--
TDateEdit
Xevi,
Bien, pero... ¿y lo de validación de fecha??? no quiero que salga del Edit con una fecha no válida...
Si el valor que asignas al TMaskEdit es una fecha, no te dejará introducir una fecha erronea. Si el usuario intenta introducirla, el control la borrará.
Ahora bien, si lo que quieres es forzar al usuario a escribir siempre una fecha válida y no dejarla en blanco, tienes dos opciones: usar un TDatePicker o validarla así:
::oMaskEdit1:OnExit := {| oSender | !Empty( oSender:Value ) }
Pierde el valor de la fecha introducida, y me la deja en blanco...
Lo que pretendo es que cuando se introduzca una fecha no válida, me vuelva a preguntar la fecha, pero eso si, mostrándome la fecha que me da error,... para verificarla, claro.
Como te he dicho, cuando la fecha introducida es incorrecta, siempre se borra. Si no quieres que se borre, lo único que se me ocurre es que asignes una cadena, en vez de una fecha:
::oMaskEdit1:Value := DTOC( Date() )
y después la validas así:
::oMaskEdit1:OnExit := {| oSender | Day( CTOD( oSender:Value ) ) > 0 }
Por supuesto, siempre tendrás que convertir el valor del maskedit a fecha cuando lo necesites, usando CTOD()
--
Un saludo,
José F. Giménez
--
Bien, pero... ¿y lo de validación de fecha??? no quiero que salga del Edit con una fecha no válida...
Si el valor que asignas al TMaskEdit es una fecha, no te dejará introducir una fecha erronea. Si el usuario intenta introducirla, el control la borrará.
Ahora bien, si lo que quieres es forzar al usuario a escribir siempre una fecha válida y no dejarla en blanco, tienes dos opciones: usar un TDatePicker o validarla así:
::oMaskEdit1:OnExit := {| oSender | !Empty( oSender:Value ) }
Pierde el valor de la fecha introducida, y me la deja en blanco...
Lo que pretendo es que cuando se introduzca una fecha no válida, me vuelva a preguntar la fecha, pero eso si, mostrándome la fecha que me da error,... para verificarla, claro.
Como te he dicho, cuando la fecha introducida es incorrecta, siempre se borra. Si no quieres que se borre, lo único que se me ocurre es que asignes una cadena, en vez de una fecha:
::oMaskEdit1:Value := DTOC( Date() )
y después la validas así:
::oMaskEdit1:OnExit := {| oSender | Day( CTOD( oSender:Value ) ) > 0 }
Por supuesto, siempre tendrás que convertir el valor del maskedit a fecha cuando lo necesites, usando CTOD()
--
Un saludo,
José F. Giménez
--
TDateEdit
Jose,
Habrá que pensarse algo para que no se borre el contenido de una fecha mal introducida por error en un MaskEdit de valor Fecha.
He probado los dos OnExit que me has propuesto, pero en los dos no me funcionan.
Los Usuarios de aplicaciones, no "entienden" los cambios a "peor", o sea... que si antes cuando se equivocaban en una fecha "veian" cuál era el error introducido por el usuario, ahora, simplemente desaparece el valor introducido, sin dar opción de "visualizar" el error cometido por el usuario.
El TDatePicker, no me sirve para ese tipo de "Gets" de fecha... no es práctico de utilizar por un usuario que está acostumbrado a aplicaciones de teclado y no de ratón, y además... Intenta de introducir en una fecha TDatePicker de value 02/07/2005 le cambias el día a 37... y verás que no se queja... e introduce en la fecha 7 y te valida 7/7/2005...cuando lo lógico sería que el "Get" de fecha se quejara al introducir un día/mes/año por error.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje news:42c8f3e5$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
Bien, pero... ¿y lo de validación de fecha??? no quiero que salga del Edit con una fecha no válida...
Si el valor que asignas al TMaskEdit es una fecha, no te dejará introducir una fecha erronea. Si el usuario intenta introducirla, el control la borrará.
Ahora bien, si lo que quieres es forzar al usuario a escribir siempre una fecha válida y no dejarla en blanco, tienes dos opciones: usar un TDatePicker o validarla así:
::oMaskEdit1:OnExit := {| oSender | !Empty( oSender:Value ) }
Pierde el valor de la fecha introducida, y me la deja en blanco...
Lo que pretendo es que cuando se introduzca una fecha no válida, me vuelva a preguntar la fecha, pero eso si, mostrándome la fecha que me da error,... para verificarla, claro.
Como te he dicho, cuando la fecha introducida es incorrecta, siempre se borra. Si no quieres que se borre, lo único que se me ocurre es que asignes una cadena, en vez de una fecha:
::oMaskEdit1:Value := DTOC( Date() )
y después la validas así:
::oMaskEdit1:OnExit := {| oSender | Day( CTOD( oSender:Value ) ) > 0 }
Por supuesto, siempre tendrás que convertir el valor del maskedit a fecha cuando lo necesites, usando CTOD()
--
Un saludo,
José F. Giménez
--
Habrá que pensarse algo para que no se borre el contenido de una fecha mal introducida por error en un MaskEdit de valor Fecha.
He probado los dos OnExit que me has propuesto, pero en los dos no me funcionan.
Los Usuarios de aplicaciones, no "entienden" los cambios a "peor", o sea... que si antes cuando se equivocaban en una fecha "veian" cuál era el error introducido por el usuario, ahora, simplemente desaparece el valor introducido, sin dar opción de "visualizar" el error cometido por el usuario.
El TDatePicker, no me sirve para ese tipo de "Gets" de fecha... no es práctico de utilizar por un usuario que está acostumbrado a aplicaciones de teclado y no de ratón, y además... Intenta de introducir en una fecha TDatePicker de value 02/07/2005 le cambias el día a 37... y verás que no se queja... e introduce en la fecha 7 y te valida 7/7/2005...cuando lo lógico sería que el "Get" de fecha se quejara al introducir un día/mes/año por error.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje news:42c8f3e5$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
Bien, pero... ¿y lo de validación de fecha??? no quiero que salga del Edit con una fecha no válida...
Si el valor que asignas al TMaskEdit es una fecha, no te dejará introducir una fecha erronea. Si el usuario intenta introducirla, el control la borrará.
Ahora bien, si lo que quieres es forzar al usuario a escribir siempre una fecha válida y no dejarla en blanco, tienes dos opciones: usar un TDatePicker o validarla así:
::oMaskEdit1:OnExit := {| oSender | !Empty( oSender:Value ) }
Pierde el valor de la fecha introducida, y me la deja en blanco...
Lo que pretendo es que cuando se introduzca una fecha no válida, me vuelva a preguntar la fecha, pero eso si, mostrándome la fecha que me da error,... para verificarla, claro.
Como te he dicho, cuando la fecha introducida es incorrecta, siempre se borra. Si no quieres que se borre, lo único que se me ocurre es que asignes una cadena, en vez de una fecha:
::oMaskEdit1:Value := DTOC( Date() )
y después la validas así:
::oMaskEdit1:OnExit := {| oSender | Day( CTOD( oSender:Value ) ) > 0 }
Por supuesto, siempre tendrás que convertir el valor del maskedit a fecha cuando lo necesites, usando CTOD()
--
Un saludo,
José F. Giménez
--
TDateEdit
Xevi,
Habrá que pensarse algo para que no se borre el contenido de una fecha mal introducida por error en un MaskEdit de valor Fecha.
He probado los dos OnExit que me has propuesto, pero en los dos no me funcionan.
Acabo de probarlos (la otra vez no lo hice), y me funciona perfectamente. Por favor, haz un pequeño ejemplo y publícalo aquí para ver donde puede estar el problema.
De todos modos, revisa que tienes las fechas en formato dd/mm/yyyy. Lo más fácil es que pongas esto al principio de tu programa:
SET DATE FRENCH
SET CENTURY ON
SET EPOCH TO Year( Date() ) - 50
--
Un saludo,
José F. Giménez
--
Habrá que pensarse algo para que no se borre el contenido de una fecha mal introducida por error en un MaskEdit de valor Fecha.
He probado los dos OnExit que me has propuesto, pero en los dos no me funcionan.
Acabo de probarlos (la otra vez no lo hice), y me funciona perfectamente. Por favor, haz un pequeño ejemplo y publícalo aquí para ver donde puede estar el problema.
De todos modos, revisa que tienes las fechas en formato dd/mm/yyyy. Lo más fácil es que pongas esto al principio de tu programa:
SET DATE FRENCH
SET CENTURY ON
SET EPOCH TO Year( Date() ) - 50
--
Un saludo,
José F. Giménez
--