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 12-06-2012
franroju franroju is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 55
Poder: 13
franroju Va por buen camino
¿cómo hago para saber que tecla se presionó?

Hola gente. Se que hay varios hilos creados con el problema que voy a describir, pero no me han solucionado, o mi capacidad mental no me permite comprender las soluciones que les han dado a los demás, je.

La situación es la siguiente: Estoy usando delphi 7, y tengo un DBGrid al cual quiero que si se presiona la tecla Supr, elimine un registro de la tabla.
Para eso, en el envento OnKeyDown del DBGrid puse lo siguiente:
Código Delphi [-]
procedure TForm6.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
   if (Key = 127) then
         eliminarRegistro;
end;

No funcionó. Probe ponerlo en el OnKeyPress cambiando la condición por #127 pero tampoco funcionó. Luego debuggee el código, mostre en pantalla el valor del parámetro Key y resulto ser el número 46. Pero según el código ASCII es el 127.

Entonces mi duda es, ¿cómo hago para saber que tecla se presionó?. Pregunto en general porque también tengo unos Edits los cuales quiero que ingrese sólo números y necesitaría el mismo procedimiento.

En el caso de la tecla Supr, si yo pregunto:
Código Delphi [-]
 if (key = 46) then
me va a funcionar en cualquier teclado??.

Muchas gracias y espero puedan orientarme un poco sobre el funcionamiento.
Responder Con Cita
  #2  
Antiguo 12-06-2012
franroju franroju is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 55
Poder: 13
franroju Va por buen camino
Ja, el título dice una cosa y el post habla de otra. Sepan disculpar, iba a preguntar lo de los Edit, y después cambié y me olvidé de modificar el título.

En fin, la situación es básicamente la misma.

Saludos
Responder Con Cita
  #3  
Antiguo 12-06-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola franroju.

En el código que pusiste sería:
Código Delphi [-]
procedure TForm6.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
   if Key = VK_DELETE then
     eliminarRegistro;
end;
Para la totalidad de códigos, busca en la ayuda de Delphi por Virtual key codes.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 12-06-2012
franroju franroju is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 55
Poder: 13
franroju Va por buen camino
Gracias eficsa, tema solucionado... ya había probado con las constantes de Windows, pero no se por qué no las tomaba. Está la unidad en la parte de los Uses pero no funcionaba, asi que ahora directamente hago refercia a ellas de la forma:

Código Delphi [-]
Windows.VK_DELETE
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
cuando presiono la tecla ENTER q pase al siguiente EDIT darkbits Varios 6 30-05-2012 17:58:22
Como hago para cargar el Socket Server como un servicio en cualquier windows ferdanjua Servers 1 07-09-2010 12:05:46
saber si se presionó Tabulador en un combobox Lizette Varios 3 19-11-2008 02:14:33
saber que tecla se presiona despues de X tecla amadis OOP 9 04-01-2008 13:16:35
como hago para mandar kaiser_robert Internet 3 01-07-2005 17:15:06


La franja horaria es GMT +2. Ahora son las 14:20: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