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 

Evento KeyDown

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

En el evento OnKeyDown de un TEdit, utilizo el parámetro Key para controlar la pulsación del signo más del teclado numérico cuyo código es VK_ADD. El problema, es que después de procesar la tecla, quiero anularla para que no aparezca en el TEdit->Text. Para ello, y ya que el parámetro Key es pasado como una referencia (WORD &Key) hago Key = 0; Sin embargo el signo + sige apareciendo en el TEdit.

if(Key==VK_ADD) {
//...
Key = 0;
}

¿Alguna sugerencia?

Volver arriba
Mensaje    Asunto: Evento KeyDown Responder citando

>En el evento OnKeyDown de un TEdit, utilizo
>el parámetro Key para controlar la
>pulsación del signo más del teclado numérico >cuyo código es VK_ADD.

Quizás te venga mejor OnKeyPress, que te da directamente el carácter. Prueba a ver si te no está funcionando anularlo o simplemente no entra en el "if".

De todas formas, quizás fuese mejor un evento como OnChange: no olvides el portapapeles.

Volver arriba
Mensaje    Asunto: Re: Evento KeyDown Responder citando

jaquemate escribió:
En el evento OnKeyDown de un TEdit, utilizo el parámetro Key para controlar la pulsación del signo más del teclado numérico cuyo código es VK_ADD. El problema, es que después de procesar la tecla, quiero anularla para que no aparezca en el TEdit->Text. Para ello, y ya que el parámetro Key es pasado como una referencia (WORD &Key) hago Key = 0; Sin embargo el signo + sige apareciendo en el TEdit.<P>if(Key==VK_ADD) {<BR> //...<BR> Key = 0;<BR>}<P>¿Alguna sugerencia?<BR>


Edit->Text="";
Edit->SetFocu();
Volver arriba
Mensaje    Asunto: Responder citando

y Te seguira apareciendo.. hasta que no Detectes el mensaje WM_KEYUP, del sistema,

esto funciona asi, las teclas de control tienes dos codigos o dos bytes.. o dos palabras como lo quieras ver

ejemplo
char Key = "K" // 75 que es la tecla de mas viene asi [75][00]
wordk Key = "+" // del teclado numerico viene asi [00][75]

se envian 2 bytes, ahora bien.. esta tecla no la puedes detener, ya que lo que hace el edit es saber si el Mensaje, WM_KEYDOWN

Código:

WM_KEYDOWN 
nVirtKey = (int) wParam;    // virtual-key code
lKeyData = lParam;          // key data


Trae la tecla, pero la tecla ya ha sido procesada por windows Primero, y Posteriormente el Edit... Prueba este codigo.. y veras que primero, carga el signo mas y posteriormente borra el ultimo caracter...
Código:

if(Key==VK_ADD){
        this->Caption = "Se presiona la suma dentro del Edit";
        this->Edit1->Text = this->Edit1->Text.SubString(1,this->Edit1->Text.Length()-1);
    }

_________________
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.