 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
yao_13 Master


Registrado: 29 Jul 2003Mensajes: 226
|
Publicado: Vie 20 Feb, 2004 10:46 pm Asunto: Problemas con KeyPress |
|
|
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 |
|
 |
Mario Invitado
|
Publicado: Sab 21 Feb, 2004 1:31 am Asunto: |
|
|
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 |
|
 |
Veinte Cdt

Registrado: 11 Dic 2003Mensajes: 11Ubicación: Guadalajara (España)
|
Publicado: Sab 21 Feb, 2004 1:32 am Asunto: KeyUp |
|
|
| A mi tambien me ha dado problemas, así que utilizo KeyUp |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Sab 21 Feb, 2004 5:11 pm Asunto: |
|
|
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)
{
}
|
_________________
 |
|
| Volver arriba |
|
 |
yao_13 Master


Registrado: 29 Jul 2003Mensajes: 226
|
Publicado: Sab 21 Feb, 2004 9:43 pm Asunto: |
|
|
Perfectamente entendido Cesar, y también gracias a Mario y Veinte. _________________ Sin pena, ni gloria |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Dom 22 Feb, 2004 1:33 am Asunto: |
|
|
Para eso esta El foro.. _________________
 |
|
| Volver arriba |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|