Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Problemas con KeyPress

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Problemas con KeyPress Responder citando

Buen día,

sucede que tengo el siguiente código:

Código:
void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key)
{
if(Key==VK_ESCAPE)
{
  Key=0;
  if(Application->MessageBox("¿Está seguro de salir?","Aviso",MB_YESNO)==IDYES)
  Form1->Close();
else
 Edit1->SetFocus();
}
if(Key==VK_F1)
{
 Key=0;
 Form2->ShowModal();
}
}


Y cuando presiono ESCAPE, si lo ejecuta, pero cuando presiono F1, no hace nada, alguien sabe por que?????
_________________
Sin pena, ni gloria
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Hola que tal, no te funciona debido a que el evento OnKeyPress solo funciona con las teclas que tienen representacion ASCII. Prueba con OnKeyDown o si lo prefieres OnKeyUp.Seguro que funciona.
Saludos.
Volver arriba
Mensaje    Asunto: KeyUp Responder citando

A mi tambien me ha dado problemas, así que utilizo KeyUp
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Mira, si te das cuenta, en el Evento OnKeyPress, el valor del Parametro Key es un Char, y dentro del Evento OnKeyDown, el Valor es de Tipo Word, bueno esto es a lo siguiente,
no es una clase, pero te puede servir, todas la teclas, tiene un codigo ASCII, para identificarse, bueno el chiste es que algunas tienen un Doble codigo por decirlo asi..

cuando presionas la letra "A" envias lo siguiente
[65] <- el numero 65 al equipo y esto es un char, para el evento OnKeyPress
pero cuando presionas F1, este valor es igual a la de la tecla ";", la diferencia es que la tecla ";" es un solo valor 59, para ser exactos
bueno pero si presionas F1, estas presionando 59, pero con doble caracter, de la siguente manera

; -> [59] <- en Key del tipo char = 59
F1 -> [00] <- en Key del tipo char = 00 (para todas las de control)

pero en el evento OnKeyDown o OnKeyUp es un Word donde se recive de la siguiente manera

F1 ->v[00][59] <-esto es fi en Key pero del tipo word

espero haberme entendido, bueno mas facil, las teclas de funcion, envias dos bytes al teclado, mientras que las teclas normales solo uno..

saludos




Código:

nota la diferencia para Capturar el codigo de Key
void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key)
{

}


void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{

}

_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Perfectamente entendido Cesar, y también gracias a Mario y Veinte.
_________________
Sin pena, ni gloria
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Para eso esta El foro..
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.