Buenos días,
necesitaría anular en esta clase la función de subir o bajar de día en la fecha, con las teclas flecha arriba y abajo.
El problema son quejas de usuarios, que sin darse cuenta cambian la fecha de documentos importantes por haber tocado las flechas sin darse cuenta.
Una ayudita por favor.
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.
Duda con TDateEdit
-
- Mensajes: 100
- Registrado: Vie Abr 10, 2009 11:02 pm
Duda con TDateEdit
Un Saludo,
Joaquín Martínez
Joaquín Martínez
- ignacio
- Site Admin
- Mensajes: 9218
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Duda con TDateEdit
Hola,
Me temo que va a tener que sobrecargar la clase TDateEdit con este código:
Saludos
Me temo que va a tener que sobrecargar la clase TDateEdit con este código:
Código: Seleccionar todo
METHOD WMKeyDown( nKey, nFlags, hWnd ) CLASS TDateEdit
::oForm:SendMsg( WM_CHANGEUISTATE, MakeLong( UIS_CLEAR, UISF_HIDEFOCUS ) )
::Refresh() // NOTA: Bug*
IF nKey == VK_F4 .AND. ! lGetKeyState( VK_CONTROL )
TDropCalendar():New( Self )
RETURN 0
ENDIF
RETURN ::Super:WMKeyDown( nKey, nFlags, hWnd )
-
- Mensajes: 100
- Registrado: Vie Abr 10, 2009 11:02 pm
Re: Duda con TDateEdit
Ignacio,
muchas gracias por iluminarme. Aunque he tenido que hacer cambios para que funcione, por si a alguien le sirve.
Además he tenido que añadir a continuación, la clase TDropCalendar completa y las funciones en C que necesita, porque todo estaba como STATIC y daba error al compilar.
Muchas Gracias.
muchas gracias por iluminarme. Aunque he tenido que hacer cambios para que funcione, por si a alguien le sirve.
Código: Seleccionar todo
CLASS TDateEdit FROM XDateEdit
PUBLISHED:
METHOD WMKeyDown( nKey, nFlags, hWnd )
ENDCLASS
METHOD WMKeyDown( nKey, nFlags, hWnd ) CLASS TDateEdit
::oForm:SendMsg( WM_CHANGEUISTATE, MakeLong( UIS_CLEAR, UISF_HIDEFOCUS ) )
::Refresh() // NOTA: Bug*
IF nKey == VK_UP .OR. nKey == VK_DOWN // No hace nada
RETURN 0
ELSE
IF nKey == VK_F4 .AND. ! lGetKeyState( VK_CONTROL )
TDropCalendar():New( Self )
RETURN 0
ENDIF
ENDIF
RETURN ::Super:WMKeyDown( nKey, nFlags, hWnd )
Muchas Gracias.
Un Saludo,
Joaquín Martínez
Joaquín Martínez
- ignacio
- Site Admin
- Mensajes: 9218
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Duda con TDateEdit
Hola,
Creo que no es una buena idea hacer un RETURN 0 cuando realmente no se hace nada con la pulsación de VK_UP y VK_DOWN, lo suyo es que se se llame a ::Super:WmKeyDown().
Saludos
Creo que no es una buena idea hacer un RETURN 0 cuando realmente no se hace nada con la pulsación de VK_UP y VK_DOWN, lo suyo es que se se llame a ::Super:WmKeyDown().
Saludos
-
- Mensajes: 100
- Registrado: Vie Abr 10, 2009 11:02 pm
Re: Duda con TDateEdit
Hola,
Sí, así lo puse, pero seguía cambiando el día incrementándolo y decrementándolo.
Será por alguna herencia, pero no sabía por cual y al ponerlo así lo ignora.
Puedes probar el código que me pusiste y verás que no cambia nada.
Sí, así lo puse, pero seguía cambiando el día incrementándolo y decrementándolo.
Será por alguna herencia, pero no sabía por cual y al ponerlo así lo ignora.
Puedes probar el código que me pusiste y verás que no cambia nada.
Un Saludo,
Joaquín Martínez
Joaquín Martínez