| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
ignacio Invitado
|
Publicado: Mie 02 Abr, 2003 6:42 pm Asunto: OnkeyPress en tiempo de ejecución |
|
|
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 |
|
 |
ignacio Invitado
|
Publicado: Mie 02 Abr, 2003 6:47 pm Asunto: Gracias |
|
|
| Ah!! y Gracias !!! Con esto la coas me quedara que ni pintada. |
|
| Volver arriba |
|
 |
jaquemate Lt Cmdr


Registrado: 30 Sep 2002Mensajes: 110
|
Publicado: Mie 02 Abr, 2003 11:56 pm Asunto: jaquemate |
|
|
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 |
|
 |
ignacio Invitado
|
Publicado: Jue 03 Abr, 2003 2:44 am Asunto: GRACIAS!! |
|
|
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 |
|
 |
ignacio Invitado
|
Publicado: Jue 03 Abr, 2003 10:15 am Asunto: UF!! |
|
|
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 |
|
 |
jaquemate Lt Cmdr


Registrado: 30 Sep 2002Mensajes: 110
|
Publicado: Jue 03 Abr, 2003 3:25 pm Asunto: jaquemate |
|
|
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 |
|
 |
ignacio Invitado
|
Publicado: Jue 03 Abr, 2003 4:26 pm Asunto: Bueno!!!! |
|
|
Pues muchas gracias!!!! Funciona EUREKA!!!
Muy Agradecido!!!
De verdad , saludos!!! |
|
| Volver arriba |
|
 |
|