Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-06-2007
calogero calogero is offline
Miembro
 
Registrado: oct 2006
Ubicación: Los Mochis, Sinaloa, México
Posts: 76
Poder: 18
calogero Va por buen camino
Cerrar calendario de TDateTimePicker con la tecla Control

Código:
//todo esto en el evento keydown del datetimepicker
procedure TfrmCompras.dateTimeDiaMesPagoKeyDown(Sender: TObject; 
Var Key: Word; Shift: TShiftState);
begin
  if Key = VK_CONTROL then begin  
      if notdateTimeDiaMesPago.DroppedDown then
        dateTimeDiaMesPago.Perform(WM_KEYDOWN,VK_F4,0);
      if dateTimeDiaMesPago.DroppedDown then
        dateTimeDiaMesPago.Perform(WM_KEYDOWN,VK_ESCAPE,0);
  end;
end;
tengo este codigo lo que deseo lograr es lo siguiente:
poder abrir y cerrar el calendario del tDateTimePicker
con la tecla control es decir deseo emular la tecla F4
con la que se abre y cierra por default el tDateTimePicker
pero lo no lo he podido hacer con la tecla control solo
logro que se abra pero si vuelvo a presionar control
no me la toma en cuenta y queda abierto el calendario
a menos que lo cierre con escape...

si alguien tiene una idea mejor por favor echeme la
mano, aqui mi jefe me trae frito con eso, gracias
por su ayuda ...
__________________
La conquista mas grande de un hombre es la conquista de el mismo.
Responder Con Cita
  #2  
Antiguo 01-06-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Puedes emular la tecla Escape cuando el estado del DateTimePicker1 este en DroppedDown, algo así

Código Delphi [-]
procedure TForm1.DateTimePicker1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if DateTimePicker1.DroppedDown then
     keybd_event( VK_ESCAPE, 0, 0, 0 );
end;

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #3  
Antiguo 01-06-2007
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Mano dura con el JEFE Calogero , tu dime cuando lo clavamos al wey jajajajajajajajaj
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King
Responder Con Cita
  #4  
Antiguo 01-06-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por AGAG4
Mano dura con el JEFE Calogero , tu dime cuando lo clavamos al wey jajajajajajajajaj
Achis, Achis los mariachis , no, yo no me llevo con el compañero calogero mi estimado Alfredo. Juego de manos es de villanos.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #5  
Antiguo 01-06-2007
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
ACLARO!!!!
EgoStar no era para usted, lo que pasa es que calogero es un amigo, donde yo conozco al jefe de él, y aveces nos damos una que otra discusión el JEFE y YO, pero no pasa de alli, yo lo dije de broma pero para el JEFE DE CALOGERO.
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King

Última edición por AGAG4 fecha: 01-06-2007 a las 19:35:16.
Responder Con Cita
  #6  
Antiguo 01-06-2007
calogero calogero is offline
Miembro
 
Registrado: oct 2006
Ubicación: Los Mochis, Sinaloa, México
Posts: 76
Poder: 18
calogero Va por buen camino
Cita:
Empezado por egostar
Puedes emular la tecla Escape cuando el estado del DateTimePicker1 este en DroppedDown, algo así

Código Delphi [-]
procedure TForm1.DateTimePicker1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if DateTimePicker1.DroppedDown then
     keybd_event( VK_ESCAPE, 0, 0, 0 );
end;

Salud OS.

pues eso mismo es lo que hago pero no me funciona no me acepta la tecla escape
__________________
La conquista mas grande de un hombre es la conquista de el mismo.
Responder Con Cita
  #7  
Antiguo 01-06-2007
calogero calogero is offline
Miembro
 
Registrado: oct 2006
Ubicación: Los Mochis, Sinaloa, México
Posts: 76
Poder: 18
calogero Va por buen camino
Cita:
Empezado por egostar
Puedes emular la tecla Escape cuando el estado del DateTimePicker1 este en DroppedDown, algo así

Código Delphi [-]
procedure TForm1.DateTimePicker1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if DateTimePicker1.DroppedDown then
     keybd_event( VK_ESCAPE, 0, 0, 0 );
end;

Salud OS.

el codigo que no me funciona solo funciona para abrir el datetimepicker con el control pero no lo cierra con el control

Código Delphi [-]
//todo esto en el evento keydown del datetimepicker
procedure TfrmCompras.dateTimeDiaMesPagoKeyDown(Sender: TObject; 
Var Key: Word; Shift: TShiftState);
begin
  if Key = VK_CONTROL then begin  
      if not dateTimeDiaMesPago.DroppedDown then
        dateTimeDiaMesPago.Perform(WM_KEYDOWN,VK_F4,0);

     //Aqui es donde simulo la tecla escape
      if dateTimeDiaMesPago.DroppedDown then
        dateTimeDiaMesPago.Perform(WM_KEYDOWN,VK_ESCAPE,0);
  end;
end;

ya hice pruebas pero no lo cierra con el control nada mas lo abre
__________________
La conquista mas grande de un hombre es la conquista de el mismo.
Responder Con Cita
  #8  
Antiguo 01-06-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por calogero
pues eso mismo es lo que hago pero no me funciona no me acepta la tecla escape
Pues es que el código que usas nunca entra, yo ya probe el código que te muestro y me lo hace perfectamente

Esto no funciona

Código Delphi [-]
 
 if Key = VK_CONTROL then begin  
      if notdateTimeDiaMesPago.DroppedDown then
        dateTimeDiaMesPago.Perform(WM_KEYDOWN,VK_F4,0);
      if dateTimeDiaMesPago.DroppedDown then
        dateTimeDiaMesPago.Perform(WM_KEYDOWN,VK_ESCAPE,0);
  end;

Nunca entra a la condición porque F4 es una tecla de control interno del TDateTimePicker, no necesitas validarla, lo que necesitas validar es cuando está en modo DroppedDown.

Como te lo muestro aqui

Código Delphi [-]
  if DateTimePicker1.DroppedDown then
     keybd_event( VK_ESCAPE, 0, 0, 0 );


Cita:
Empezado por AGAG4
ACLARO!!!!
EgoStar no era para usted, lo que pasa es que calogero es un amigo, donde yo conozco al jefe de él, y aveces nos damos una que otra discusión el JEFE y YO, pero no pasa de alli, yo lo dije de broma pero para el JEFE DE CALOGERO.

Ah bueno, asi estamos en paz....

Edito: Esta bien que ya soy mayorcito, pero hablame de tu, no de usted.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #9  
Antiguo 01-06-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
A mi me ha funcionado así:

Código Delphi [-]
procedure TForm1.DateTimePicker1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if KEY = VK_CONTROL then
    if DateTimePicker1.DroppedDown then
    begin
      keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0 );
      keybd_event(VK_ESCAPE, 0, 0, 0 );
    end
    else
    begin
      keybd_event(VK_F4, 0, 0, 0 );
    end;
end;

Si nada más pongo keybd_event(VK_ESCAPE, 0, 0, 0 ) actúa conmo si oprimiese Ctrl+Esc de manera que aparece el menú de inicio de Windows y no se cierra el DateTimePicker.

// Saludos
Responder Con Cita
  #10  
Antiguo 01-06-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por roman
Si nada más pongo keybd_event(VK_ESCAPE, 0, 0, 0 ) actúa conmo si oprimiese Ctrl+Esc de manera que aparece el menú de inicio de Windows y no se cierra el DateTimePicker.

// Saludos
Te juro por el osito bimbo, que a mi me funciona bien con mi código, y tu código no hace nada.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #11  
Antiguo 01-06-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Mejor usar el evento OnKeyUp y ya funciona como comenta egostar:

Código Delphi [-]
procedure TForm1.DateTimePicker1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if KEY = VK_CONTROL then
    if DateTimePicker1.DroppedDown then
      keybd_event(VK_ESCAPE, 0, 0, 0 )
    else
      keybd_event(VK_F4, 0, 0, 0 );
end;

// Saludos
Responder Con Cita
  #12  
Antiguo 01-06-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Je, je, creo que tú estás usando OnKeyUp

// Saludos
Responder Con Cita
  #13  
Antiguo 01-06-2007
calogero calogero is offline
Miembro
 
Registrado: oct 2006
Ubicación: Los Mochis, Sinaloa, México
Posts: 76
Poder: 18
calogero Va por buen camino
Cita:
Empezado por egostar
Te juro por el osito bimbo, que a mi me funciona bien con mi código, y tu código no hace nada.

Salud OS.

Pues no es por darte la contra egostar pero a mi me pasa igual que a roman me activa el menu inicio...
__________________
La conquista mas grande de un hombre es la conquista de el mismo.
Responder Con Cita
  #14  
Antiguo 01-06-2007
calogero calogero is offline
Miembro
 
Registrado: oct 2006
Ubicación: Los Mochis, Sinaloa, México
Posts: 76
Poder: 18
calogero Va por buen camino
Cita:
Empezado por roman
A mi me ha funcionado así:

Código Delphi [-]
procedure TForm1.DateTimePicker1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if KEY = VK_CONTROL then
    if DateTimePicker1.DroppedDown then
    begin
      keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0 );
      keybd_event(VK_ESCAPE, 0, 0, 0 );
    end
    else
    begin
      keybd_event(VK_F4, 0, 0, 0 );
    end;
end;



// Saludos
ya hice pruebas con tu código roman y si me funciona solo que en un formulario aislado, en el formulario donde lo necesito no me funciona pero eso ya es cuention mia tengo que ver que otras teclas me causan conflicto, pero gracias por tu ayuda...
__________________
La conquista mas grande de un hombre es la conquista de el mismo.
Responder Con Cita
  #15  
Antiguo 01-06-2007
calogero calogero is offline
Miembro
 
Registrado: oct 2006
Ubicación: Los Mochis, Sinaloa, México
Posts: 76
Poder: 18
calogero Va por buen camino
Cita:
Empezado por AGAG4
Mano dura con el JEFE Calogero , tu dime cuando lo clavamos al wey jajajajajajajajaj
jajajaja me gustó la idea que planteaste AGAG4 pero parece que ya no va a ser necesario, ya los muchachos me dieron soluciones efectivas, pero de seguro se va a presentar una oportunidad en el futuro de llevar a cabo tu sugerencia aunke sea solo en el pensamiento jajajaja

un saludo a todos y gracias por tomarse el tiempo de responder.
__________________
La conquista mas grande de un hombre es la conquista de el mismo.
Responder Con Cita
  #16  
Antiguo 01-06-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por calogero
Pues no es por darte la contra egostar pero a mi me pasa igual que a roman me activa el menu inicio...
No pues esta bien, lo importante es que ya quedo, debo ver que carajos hice porque a mi me funcionó y no guarde el proyecto.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
saber que tecla se presiona despues de X tecla amadis OOP 9 04-01-2008 13:16:35
Evitar cerrar form con la tecla ESC... uper Varios 1 06-12-2005 20:11:54
Cerrar ventana con la tecla ESC Alexander Varios 3 19-05-2005 19:14:22
Control calendario para aplicacion CLX ctronx Varios 4 14-10-2004 17:55:01
Tecla PetSis y tecla Inter Tomás Windows 0 24-04-2004 14:20:19


La franja horaria es GMT +2. Ahora son las 14:57:17.


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