Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-10-2004
jam888 jam888 is offline
Miembro
 
Registrado: sep 2004
Posts: 115
Poder: 20
jam888 Va por buen camino
cual le corresponde a cual?

Tengo el siguiente problema, al hacer un programita que me diga el caracter ascii de las teclas que se presionan, en especial con las teclas flecha hacia la izquierda <-,flecha derecha ->y la tecla delete, yo quiero que el programa haga lo siguiente.
yo presiono la tecla 'enter'y que imprima #13,luego ESC y diga #27,luego Bakspace y diga #8 y asi sucesivamente pero no encuentro por ningun lado esa informacion es decir ¿como hago para saber cual le corresponde a cada tecla?
Responder Con Cita
  #2  
Antiguo 05-10-2004
senpiterno senpiterno is offline
Miembro
 
Registrado: abr 2004
Posts: 112
Poder: 21
senpiterno Va por buen camino
Tu pregunta no es muy aclaratoria, pero si lo que quieres es capturar cada tecla que se precione en el formulario, lo primero que debes hacer es asignar la propiedad KeyPreview:=True en el formulario, para que todos los eventos de teclado realizados sean capturados primero por el formulario y despues por los demas controles, a menos que quieras capturar dichos eventos en un determinado control del form....
Ya aclarado esto, los eventos que puedes utilizar para capturar las teclas precionadas pueden ser

Código Delphi [-]
   
procedure TForm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 
  //codigo.....
 
end;
o
Código Delphi [-]
   
procedure TForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
 
  //codigo.....
 
end;
o
Código Delphi [-]
   
procedure TForm.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 
  //codigo.....
 
end;
Donde la variable Key para KeyDown y KeyUp representa el codigo virtual de la tecla precionada o soltada. Ejem:

enter=13, F1=112, etc

En el evento KeyPress Key devuelve el caracter precionado.

Espero sirva a tus propositos.

Saludos
Responder Con Cita
  #3  
Antiguo 05-10-2004
jam888 jam888 is offline
Miembro
 
Registrado: sep 2004
Posts: 115
Poder: 20
jam888 Va por buen camino
No me entendieron

Lo que yo quiero hacer es lo siguiente:tengo un formulario y en el medio de el un cuadro de texto(tedit)y en el evento onkeypress del cuadro de texto meter el siguiente codigo.
case key of
#8 :showmessage('se presiono tab');
#13 :showmessage('se presiono enter');
#27 :showmessage('se presiono escape');
end;
estos codigos yo los saque de los foros ,pero los otros de las otras teclas no las se, como hago para saber cual le corresponde a la ->,<-,tecla delete y todas las teclas restantes.
Responder Con Cita
  #4  
Antiguo 05-10-2004
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
Los códigos de las teclas se manejan como constantes VK_DELETE, VK_RETURN, VK_F1, etc. Busca en el índice de la ayuda de Delphi acerca de Virtual Key Codes para que veas todas las constantes.

// Saludos
Responder Con Cita
  #5  
Antiguo 05-10-2004
jam888 jam888 is offline
Miembro
 
Registrado: sep 2004
Posts: 115
Poder: 20
jam888 Va por buen camino
Eso no me sirve

Yo se que existen esos codigos virtuales, pero no me sirven por que, si al presionar la tecla * o la tecla delete yo no quiero que aparesca nada en la cajita de texto y hago lo siguiente key:='';y me salta un error de tipos no compatibles por que la variable key es de tipo word y le estoy asignando un string (esto pasa en keydown y keyup),yo se que estos codigos estan pero no los encuentro en la ayuda de delphi, pero en algunos casos citan ejemplos lo cual quiee decir que existen.
Si alguien los conoce me podria ayudar?
Responder Con Cita
  #6  
Antiguo 05-10-2004
Avatar de vic_ia
vic_ia vic_ia is offline
Miembro
 
Registrado: ene 2004
Posts: 238
Poder: 21
vic_ia Va por buen camino
hola....
Cita:
Empezado por jam888
Yo se que existen esos codigos virtuales, pero no me sirven por que, si al presionar la tecla * o la tecla delete yo no quiero que aparesca nada en la cajita de texto y hago lo siguiente key:='';y me salta un error de tipos no compatibles por que la variable key es de tipo word y le estoy asignando un string (esto pasa en keydown y keyup)
creo que la asignacion que tendrias que hacer es
Código Delphi [-]
key := #0
saludos....
Responder Con Cita
  #7  
Antiguo 06-10-2004
jam888 jam888 is offline
Miembro
 
Registrado: sep 2004
Posts: 115
Poder: 20
jam888 Va por buen camino
No Parese Pero Es Muy Dificil O No?

Ayer mande un nuevo hilo y nadie me supo contestar,pero la solucion parece ser sencilla a simple vista, lo que quiero hacer es lo siguiente.
En este procedimiento quiero hacer lo siguiente
procedure TForm1.Edit7KeyPress(Sender: TObject; var Key: Char);
begin
case key of
#8 :se showmessage('se presiono backspace');
#27 :se showmessage('se presiono escape');
#13:se showmessage('se presiono enter');
.
.
.
.
y asi seguir con varias teclas mas

end;
end;
yo se que existen codigos virtuales de teclas(vk_enter)pero estos no me sirven, yo nesecito saber cual es el codigo de la ->,<-,de la tecla delete ,en realidad de todasd las teclas para un futuro,por que las teclas virtuales no me sirven.
El hilo anterior que mande ayer es Cual le corresponde a cual ? por si quieren chequearlo.
Responder Con Cita
  #8  
Antiguo 06-10-2004
Avatar de Pablo Carlos
Pablo Carlos Pablo Carlos is offline
Miembro
 
Registrado: jun 2004
Ubicación: Mendoza - Argentina
Posts: 270
Poder: 20
Pablo Carlos Va por buen camino
Hola. busca en el histórico del foro. hace poco mande bastantes.

Saludos
__________________
Por qué todas las personas saben exactamente cómo debemos vivir nuestra vida, y nunca tienen idea de cómo deben vivir sus propias vidas.
Responder Con Cita
  #9  
Antiguo 06-10-2004
Avatar de taita
taita taita is offline
Miembro
 
Registrado: sep 2003
Ubicación: Murcia, San Pedro del Pinatar
Posts: 115
Poder: 21
taita Va por buen camino
Hola. Por lo que veo lo que deseas es utilizar el valor generado por cada tecla al ser pulsada para reconocerlas. He visto por ahi en algún lado (perdona si no te digo donde, pero es que no me acuerdo) las tablas de códigos de cada tecla.
Para obtener sus valores una solución seria que hicieras algo asi para saber cual es el valor original de cada tecla:

- Revisa el teclado para ver si se ha pulsado una tecla.
- Si se ha pulsado una: toma su valor e imprimelo en un label.

Asi obtendrás el valor numérico de cada tecla.

Es lo único que se me ocurre, pero sé que si buscas por aqui en el foro algo encontrarás.
Saludos
Responder Con Cita
  #10  
Antiguo 06-10-2004
senpiterno senpiterno is offline
Miembro
 
Registrado: abr 2004
Posts: 112
Poder: 21
senpiterno Va por buen camino
Pruba esto:
Código Delphi [-]
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  case key of
      VK_BACK  :showmessage('se presiono backspace, que tiene el codigo de tecla ' + IntTostr(VK_BACK));
      VK_ESCAPE  :showmessage('se presiono escape, que tiene el codigo de tecla ' + IntTostr(VK_ESCAPE));
      VK_RETURN : showmessage('se presiono enter, que tiene el codigo de tecla ' + IntTostr(VK_RETURN));
      VK_LEFT : showmessage('se presiono <-, que tiene el codigo de tecla ' + IntTostr(VK_LEFT));
      VK_RIGHT : showmessage('se presiono ->, que tiene el codigo de tecla ' + IntTostr(VK_RIGHT));
      VK_UP  : showmessage('se presiono la tecla de dirección arriba, que tiene el codigo de tecla ' + IntTostr(VK_UP));
      VK_DOWN   : showmessage('se presiono la tecla de dirección abajo, que tiene el codigo de tecla ' + IntTostr(VK_DOWN));
      //y asi sucesivamente con todas las teclas que quieras
      //los codigos virtuales son constantes que almacenan el valor
      //que referencia la tecla citada, en este caso de tipo integer
      //enter=13.....
 end;
 key:=0;//si no quieres que se imprima el caracter en el edit

end;
Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 17:04:06.


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