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 

Problema al capturar la tecla ESC

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Problema al capturar la tecla ESC Responder citando

al apretar ESC en mi aplicación esta tiene un estraño comportamiento.
Cual es la mejor manera de controlar que en un Edit se apreta la tecla ESC??


Gracias.
Volver arriba
Mensaje    Asunto: Perdido Responder citando

Es triste pero sigo sin tener claras cosas que deben de ser muy basicas.

Mi aplicación de facturación crea ventanas hijas para los albaranes.
Pues bien al inicio de la clase MDIChild declaro un nuevo objeto taula que guarda algunos datos de la StringGrid que contiene la ventana.

#pragma resource "*.dfm"
//--------------------------------------------------------------------
Ttaula *taula = new Ttaula();

Lo declaro aquí al inicio de la definición de ventana, porque voy a usar taula en varios de los eventos de la ventana.

dudo!! porque mi idea seria que al crearse una ventana hija se creara la taula asociada a ella.

Pues bien parece que la cosa funciona(??) pero dentro de la ventana al apretar ESC miro de salir de la Stringgrid, de los Edits etc.....
En la stringgrid en el evento Keypress capturo su pulsación con

if(Key==VK_ESCAPE){...

Perfecto pero cuando estoy en un Tedit al apretar ESC el tema se descontrola y se ejecuta un evento de la ventana hija que nada tiene que ver con lo que yo dispongo.

todos los EDITS tienen en ONKEYPRESS

if(Key==VK_ESCAPE){
TSegurDlg *SegurDlg;
SegurDlg= new TSegurDlg(this);//crear
if(SegurDlg->ShowModal()==1){
Key=0;
this->Close();
}
Key=0;
delete SegurDlg;//destruir
}

Se que són 2 preguntas en uno y que la empanada puede ser dificil de resolver, no se si una cosa tiene que ver con la otra o si el problema de la tecla ESC nada tiene que ver , pero en mi codigo no encuentro ninguna ACTION ni nada que asocie el botton que parece que se ejecute con el ESC.

Mil gracias y disculpas.
Volver arriba
Mensaje    Asunto: uf!! Responder citando

void __fastcall TMDIChild::CdniKeyDown(TObject *Sender, WORD &Key,TShiftState Shift)
{
if(Key==VK_ESCAPE){
ShowMessage("ESCAPE");
}
if(Key==VK_DOWN){
Key = 0;
Perform(WM_NEXTDLGCTL, 0, 0);
}
}

Esto esta en el ONKEYDOWN de un Maskedit
y esto en el ONKEYPRESS

if(Key==13||Key==VK_UP||Key==VK_DOWN){
Key = 0;
Perform(WM_NEXTDLGCTL, 0, 0);
}
if(Key==VK_ESCAPE){
ShowMessage("ESCAPE");
TSegurDlg *SegurDlg;
SegurDlg= new TSegurDlg(this);//crear
if(SegurDlg->ShowModal()==1){
Key=0;
this->Close();
}
Key=0;
delete SegurDlg;//destruir
}


Pues bien resulta que al apretar ESC dentro del Maskedit , se ejecuta la siguiente acción:

void __fastcall TMDIChild::BitBtn6Click(TObject *Sender)

y lo que dentro de esta pulsación de Boton ocurre!!! No encuentro la relación entre ESC y este boton????

Alguna idea de donde los puedo tener relacionados?
Volver arriba
Mensaje    Asunto: Responder citando

Fíjate si la propiedad 'Cancel' de ese u otro botón de ese Form esta a 'true', si es así se disparara cada vez que pulses escape. Es su comportamiento normal cuando esa propiedad esta a 'true'.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: muchas gracias Responder citando

Me estava volviendo majara!!!
Mil gracias , estaba a TRUE en efecto!!!
Esto me creaba un Caos!!!!

Por cierto y ya abusando , el echo de declarar un objeto al inicio de la definición de la ventana

#include "segurDLGU.h"
//---------------------------------------------------------------------
#pragma link "Uframeclient"
#pragma resource "*.dfm"
//--------------------------------------------------------------------
Ttaula *taula = new Ttaula();

Es correcto? Poner aquí esto. Se crea un nuevo objeto al abrir una nueva ventana?

Gracias, de verdad.
Volver arriba
Mensaje    Asunto: Responder citando

El efecto de esto seria más o menos el mismo que incluir esa ventana bajo 'Auto-create forms:' en las propiedades del proyecto en la pestaña 'Forms'.

O sea, se crea cada Form al comenzar el programa, tanto si son necesarios como si no, desperdiciando memoria. Mejor crearlos en el momento que son necesarios y liberarlos cuando no lo sean.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
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.