PDA

Ver la Versión Completa : Evento Key press o keydown en TMonthCalendar


amadis
03-02-2006, 19:48:51
Hola amigos.!


Necesito capturar eventos de teclado en un TMonth Calendar que esta en un Panel que se visualiza cuando es necesario.

Y para ocultarlo nuevamente hay 2 opciones o seleccionar una fecha con lo cual no tuve problema o presionar escape por ej para no seleccionar fecha.

El tema es que no me captura los eventos de teclado aparentementa no me detecta el CHR(27) en keypress ni VK_escape en keydown.


¿tienen alguna idea?

Gracias! :confused:

jmariano
03-02-2006, 23:29:32
Te ocurre porque el MonthCalendar no está recibiendo el "foco" (sólo lo recibe en "determinados" momentos). Lo que puedes hacer es, en el momento en el que muestras el calendario, hacer que lo reciba mediante el método SetFocus y, también, cuando haces click en alguna fecha si lo estás cerrando al hacer el doble click.

Por ejemplo, imaginando que lo muestras al pulsar un botón:

...
procedure TForm1.Button1Click(Sender: TObject);
begin
Panel1.Visible := True;
MonthCalendar1.SetFocus;
end;

procedure TForm1.MonthCalendar1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = {Tecla} then
{Condición}
end;
...


Saludos!

amadis
04-02-2006, 12:15:34
Muchas Gracias...


Yo pensé que ya al ponerlo visible y tocar las fechas con el mouse quedaba EN FOCO pero no...

Y si lo que hacia para cerrarlo por verdadero era con DOBLECLICK en la fecha que ese si funcionaba!

Muchas Gracias!