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 03-05-2013
Subliminalz Subliminalz is offline
Registrado
NULL
 
Registrado: abr 2013
Posts: 7
Poder: 0
Subliminalz Va por buen camino
Capturar la tecla Enter en una Notebook, sin tener que presionar Shift o Ctrl.

Hola muchachos(as), tengo un pequeño problema, se trata sobre la tecla Enter, en una computadora normal, el código funciona de maravilla, pero en una Notebook tengo que acompañar la tecla Enter con la tecla Shift, logre, aunque no se si fue un logro, hacer que trabaje con la tecla Ctrl, en vez de Shift, pero es lo mismo... el código que uso tambien captura otras teclas (números,+,-,*,/)...

Código Delphi [-]
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin case key of
      VK_NUMPAD1:FormClick(Button6);
      VK_NUMPAD2:FormClick(Button7);
      VK_NUMPAD3:FormClick(Button8);
      VK_NUMPAD4:FormClick(Button9);
      VK_NUMPAD5:FormClick(Button10);
      VK_NUMPAD6:FormClick(Button11);
      VK_NUMPAD7:FormClick(Button12);
      VK_NUMPAD8:FormClick(Button13);
      VK_NUMPAD9:FormClick(Button14);
      VK_DECIMAL:FormClick(Button15);
      VK_NUMPAD0:FormClick(Button16);
      VK_ADD:FormClick(Button2);
      VK_SUBTRACT:FormClick(Button3);
      VK_MULTIPLY:FormClick(Button4);
      VK_DIVIDE:FormClick(Button5);
      VK_RETURN:FormClick(Button1); {Enter}
      end;


Lo que trato de lograr, es que funcione de modo normal, presionando solo la tecla Enter, estaba viendo otro hilo, otro tema similar, con el mismo caso, pero dieron muchas soluciones, las cuales aplique, pero al igual que en ese Tema ninguna funciono, trabaje el mismo código en una computadora normal, una desktop, y descubri muchas cosas interesantes y si funciona directamente la tecla Enter, pero en una Notebook no funciona de manera directa...

Espero alguien me ayude, muchas gracias de antemano... tambien intente con Key:#13, otra forma que intente... pero ninguna...
Responder Con Cita
  #2  
Antiguo 04-05-2013
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Cita:
Empezado por Subliminalz Ver Mensaje
....tambien intente con Key:#13, otra forma que intente... pero ninguna...
Pues es que es lo que podría funcionarte..., ¿Y probaste Key = #13?
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #3  
Antiguo 04-05-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
rrf,

Cita:
Empezado por rrf
...en una Notebook tengo que acompañar la tecla Enter con la tecla Shift...
...Lo que trato de lograr, es que funcione de modo normal, presionando solo la tecla Enter...
Revisa este link:
Cita:
Detectar pulsación de teclas Ctrl, Alt y Shift y teclas virtuales : http://www.clubdelphi.com/foros/showthread.php?t=70559
Adicionalmente te sugiero usar el evento OnKeyDown de un control TEdit para determinar que código de tecla se activa al presionar unicamente la tecla Enter del equipo en cuestión.

Espero sea útil

Nelson.
Responder Con Cita
  #4  
Antiguo 05-05-2013
Subliminalz Subliminalz is offline
Registrado
NULL
 
Registrado: abr 2013
Posts: 7
Poder: 0
Subliminalz Va por buen camino
Post

"Tiammat" claro que si. Gracias por la recomendación.
"NLSGarcia" muy interesante lo que posteo el usuario "RRF"... de hecho me va a servir para practicar la combinación de teclas... asi que gracias...

Cita:
Empezado por nlsgarcia Ver Mensaje
Adicionalmente te sugiero usar el evento OnKeyDown de un control TEdit para determinar que código de tecla se activa al presionar unicamente la tecla Enter del equipo en cuestión.
Con este comentario me hiciste pensar un rato, "unicamente" fue la palabra magica...

Gracias a ello detecte la falla y es que estaba a simple vista, solo faltaba mirar un poco más y aumentar un poco el brillo a la pantalla, jeje, se debe a que estoy utilizando un código que cuando presiono las teclas del teclado númerico, también se marcan los números que estan en el Form, es decir en la interfaz que también tiene los numeros, entonces ejecuto la aplicación, introduzco un número, luego introduzco la operación, luego otro número, y presiono Enter entonces me introduce el 2do. número que marque ya que este todavia se encuentra presionado debido al código...
El código para presionar los números y que se muestre también en la interfaz es:
Código Delphi [-]
procedure TForm1.OnClick(Sender: TButton);
begin
  with (Sender as TButton) do
  begin
    Perform(WM_LBUTTONDOWN, MK_LBUTTON,0);
Sleep(100);
    Perform(WM_LBUTTONUP, MK_LBUTTON,0);
  end;
end;
Eliminando ese código y dejando solo el de Enter funciona de maravilla, el problema principal no era el acompañamiento de la tecla Enter, sino que al apretar Shift se ignoraba lo anterior dejando como tecla principal el Enter... de ahi que tenia que venir acompañada la señorita, jeje...

Fue cuando se me ocurrio la peor solución de todas, implementar un código que mantega la tecla Shift presionada, lo pongo justo debajo del código que puse arriba...
Código Delphi [-]
keybd_event(VK_SHIFT, 0, 0, 0);
Sleep(500);
Efectivamente funciona durante ese lapso de tiempo, pero no solo con la aplicación sino en todo, me abre dos Delphi, y me abre dos navegadores y cada vez que doy click a algo lo vuelve a abrir, jaja, se vuelve loco todo, estas cosillas que uno aprende en el camino...

Entonces amigos(as), como le puedo hacer, jeje, esta medio complicado esto, o a ese código como le hago pero que funcione solo en la aplicación, ya que si quito el tiempo, entonces permanece activo siempre, complicado para mi, el novato, jeje...

Bueno muchas gracias, de paso alguien me indica que le aumento a ese primer código para que deje las teclas como sino se hubieran presionado y también como hacer para forzar que se presione la tecla Enter sin importar que otra tecla este activa, si se puede claro...

Muchas gracias en verdad...
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 ruta al presionar Ctrl +C DOS994 C++ Builder 11 23-12-2012 22:55:49
''Capturar la tecla Enter en un Edit'' Basi Varios 5 12-09-2012 23:58:13
Cambiar la tecla TAB por la tecla ENTER al pasar de controles dec Trucos 0 30-06-2006 13:43:03
ctrl+v / shift+insert subzero Varios 4 29-07-2005 17:15:40
grafica como la de xp al presionar ctrl+alt+del click Gráficos 2 06-05-2004 19:40:23


La franja horaria es GMT +2. Ahora son las 23:01:43.


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