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 

OnkeyPress en tiempo de ejecución

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: OnkeyPress en tiempo de ejecución Responder citando

En tiempo de ejecución creo un TEDIT
TEdit *codi;
codi = new TEdit(this);
codi->Parent = ScrollBox1;
codi->Color=clMenu;
codi->Height = 20;
codi->Width = 95;
codi->Text=codis;
codi->Font->Height=17;
codi->Left = 5;
codi->Top=1;

como asociar a este control un procedimineto que capture la tecla que aprieta cuando estamos sobre el?

codi->OnKeyPress= ?

O sea como puedo trabajar con el Keypress normal que recibe la Key??
Volver arriba
Mensaje    Asunto: Gracias Responder citando

Ah!! y Gracias !!! Con esto la coas me quedara que ni pintada.
Volver arriba
Mensaje    Asunto: jaquemate Responder citando

Pon esto en la parte private de la clase:

Código:
void __fastcall codiKeyPress (TObject* Sender, char &Key);


Y luego, en la implementación:

Código:
//el TForm1 deberás sustituirlo por el nombre de la clase
void __fastcall TForm1::codiKeyPress (TObject* Sender, char &Key)
{
  ShowMessage(Key);
}


Por último, sólo te queda asignar el evento al objeto:

Código:
codi->OnKeyPress = codiKeyPress;


Un saludo.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: GRACIAS!! Responder citando

pongamos que aparte de el objeto y la tecla pretendo pasar la fila que ocupa el objeto dentro de una matriz de objetos creados en ejecución.

Me explico

Linia[cnt].codi->ReadOnly=true;
Linia[cnt].codi->OnKeyPress=codiKeyPress;

Como hacerlo ahora para poder pasar cnt?? a la función codiKeypress

Gracias de nuevo.
Volver arriba
Mensaje    Asunto: UF!! Responder citando

Edit1KeyPress(TObject *Sender, char &Key)

Sender es el objeto que tiene el Foco al apretar una tecla?

Porque he mirado de poner a la propiedad

Linia[cnt].Demanar->Tag=cnt;

pero después soy incapaz de recuperar Tag dentro de Edit1KeyPress

Alguna idea?
Gracias.
Volver arriba
Mensaje    Asunto: jaquemate Responder citando

Sí, el objeto Sender es el control que generó el evento, pero tienes que hacer un molde o cast, ya que Sender es del tipo TObject y no tiene esa propiedad:

Código:
int tag = ((TEdit*) Sender)->Tag;


Un saludo.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Bueno!!!! Responder citando

Pues muchas gracias!!!! Funciona EUREKA!!!
Muy Agradecido!!!
De verdad , saludos!!!
Volver arriba
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.