Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   OnKeyPress, OnKeyUp, OnKeyDown en MonthCalendar (https://www.clubdelphi.com/foros/showthread.php?t=54708)

santiago14 28-03-2008 01:12:43

OnKeyPress, OnKeyUp, OnKeyDown en MonthCalendar
 
Buenas, tengo un problema:
resulta que necesito moverme con las flechas del teclado por los días del calendario y el dichoso componente no toma los eventos OnKey... Es raro pues están en el listado de eventos pero ninguno de ellos funciona.
Quisiera saber la manera de poder ejecutarlos, al menos uno de ellos para poder capturar las teclas.
Gracias.

egostar 28-03-2008 01:26:36

Cita:

Empezado por santiago14 (Mensaje 275859)
Buenas, tengo un problema:
resulta que necesito moverme con las flechas del teclado por los días del calendario y el dichoso componente no toma los eventos OnKey... Es raro pues están en el listado de eventos pero ninguno de ellos funciona.
Quisiera saber la manera de poder ejecutarlos, al menos uno de ellos para poder capturar las teclas.
Gracias.

Se puede saber que codigo has utilizado, porque de que se puede se puede, espero tu codigo para darte la solucion.

Salud OS

santiago14 28-03-2008 01:38:23

Codigo
 
Mañana mismo los pongo, en este momento no los tengo.
Un abrazo.
Gracias.

keyboy 28-03-2008 01:48:59

Hay que poner MonthCalendar.TabStop a true; de lo contrario nunca toma el foco y por tanto no recibe los eventos del teclado.

Bye

Caro 28-03-2008 14:20:41

Hola santiago14, Tienes que utilizar el evento OnKeyUp del MonthCalendar para que te funcione las fechas del teclado y no olvidarte como te dice KeyBoy de colocar la propiedad TabStop=True.

Código Delphi [-]
procedure TForm1.MonthCalendar1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 Case key Of
  vk_left : MonthCalendar1.Date := MonthCalendar1.Date-1;
  vk_Right : MonthCalendar1.Date := MonthCalendar1.Date+1;
  vk_Up : MonthCalendar1.Date := MonthCalendar1.Date-7;
  vk_Down : MonthCalendar1.Date := MonthCalendar1.Date+7;
 end;
end;

Saluditos

egostar 28-03-2008 18:54:48

Cita:

Empezado por keyboy (Mensaje 275868)
Hay que poner MonthCalendar.TabStop a true; de lo contrario nunca toma el foco y por tanto no recibe los eventos del teclado.

Bye

Cita:

Empezado por Caro (Mensaje 275969)
Hola santiago14, Tienes que utilizar el evento OnKeyUp del MonthCalendar para que te funcione las fechas del teclado y no olvidarte como te dice KeyBoy de colocar la propiedad TabStop=True.

Saluditos

Cita:

Empezado por egostar (Mensaje 275862)
Se puede saber que codigo has utilizado, porque de que se puede se puede, espero tu codigo para darte la solucion.

Salud OS

Vaya me siento el malo de la pelicula, en fin......:rolleyes:

Salud OS

santiago14 29-03-2008 01:18:16

Acerca del OnKeyUp
 
Cita:

Empezado por Caro (Mensaje 275969)
Hola santiago14, Tienes que utilizar el evento OnKeyUp del MonthCalendar para que te funcione las fechas del teclado y no olvidarte como te dice KeyBoy de colocar la propiedad TabStop=True.

Código Delphi [-]
procedure TForm1.MonthCalendar1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 Case key Of
  vk_left : MonthCalendar1.Date := MonthCalendar1.Date-1;
  vk_Right : MonthCalendar1.Date := MonthCalendar1.Date+1;
  vk_Up : MonthCalendar1.Date := MonthCalendar1.Date-7;
  vk_Down : MonthCalendar1.Date := MonthCalendar1.Date+7;
 end;
end;

Saluditos


La cita de arriba es lo que hice pero no funciona, ah si, puse tabStop = true y nada, es como si no ganara el foco el calendario, cuando presiono alguna tecla de desplazamiento sale del calendario, si presiono la opuesta entra nuevamente y ahi si se ejecuta el OnKeyUp. La verdad es que no se porque, no creo que tenga injerencia pero tengo la propiedad KeyPreview en true. Ahora recuerdo, la puse en falso y tampoco funciona.
Bueno, les agradezco y espero encontrar pronto la respuesta.

Saludos.


La franja horaria es GMT +2. Ahora son las 18:07:30.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi