| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Bastian Ens

Registrado: 21 Ago 2002Mensajes: 27Ubicación: Valencia
|
Publicado: Lun 26 Ago, 2002 5:55 pm Asunto: EVENTOS DE COMPONENTES VCL |
|
|
Hola a tod@s!
Perdonad que sea tan pesado con lo de los componentes, pero es que estoy empezando y lo necesito para mi proyecto final de carrera.
Estoy haciendo un componente vcl para comunicar con un modulo industrial por puerto serie.
Lo he derivado de otro llamado CustomComPort que sirve para gestionar el puerto serie. Este tiene un evento llamado OnRxChar, que se ejecuta cuando cuando se recibe caracteres por el puerto serie. Tiene tambien un par de metodos, para leer los caracteres recibidos y para mandar cadenas (ReadStr(AnsiString cadena) y WriteStr(AnsiString cadena)).
Cuando le mando al modulo una cadena de peticion de datos, este responde con una cadena que contiene los datos que le solicito. Lo que quiero hacer es automatizar la recepcion de datos. Es decir, supongamos que en el componente hijo tengo una propiedad llamada DatosCanal, que debe contener lo que se recibe por el puerto serie. Lo que quiero hacer es que mi componente por si mismo lea la cadena cuando la reciba y la guarde haciendo:
| Código: | TMiComponente::ReadStr(DatosCanal); |
Pero no se como declarar el metodo desde dentro de la clase para que se ejecute cuando se reciba un evento OnRxChar.
En otras palabras: quiero que el evento se ejecute desde dentro de la clase, si tener que escribir luego en la aplicacion que contiene el componente:
| Código: |
void __fastcall TForm1::MiComponente1RxChar (TObject *Sender, int Count)
{
MiComponente1->ReadStr(MiComponente1->DatosCanal);
} |
Alguien sabe como se puede hacer.  _________________ SALU2............Bastian! |
|
| Volver arriba |
|
 |
TOÑO Master

Registrado: 26 Ago 2002Mensajes: 223Ubicación: Madrid - España -
|
Publicado: Lun 26 Ago, 2002 6:01 pm Asunto: |
|
|
HOLA:
Jo... es que me pillas hoy muy pez. Pero creo que lo que quieres hacer es que cuando tu componente reciva la comunicacion se lo notifique al programa.
Para ello tienes que crear un evento de notificacion OnEvent (creo o OnNotifyEvent) mirar la ayuda a ver si encuentras algo. Si no encuentras nada, cuando me espabile te mando algo de codigo.
By. |
|
| Volver arriba |
|
 |
Bastian Ens

Registrado: 21 Ago 2002Mensajes: 27Ubicación: Valencia
|
Publicado: Lun 26 Ago, 2002 6:15 pm Asunto: |
|
|
Hola TOÑO!
Creo que no me he explicado bien.
Lo que quiero hacer es que cuando llegue algo por el puerto serie, se guarde automaticamente en una propiedad del componente sin tener que hacer nada más.
Lo que tu me dices, es crear un evento con:__property TNotifyEvent MiEvento...., pero es que el evento que quiero usar (desde dentro de la clase) ya existe en el componente padre del que derivo mi componente.
GRACIAS POR TU INTERES! _________________ SALU2............Bastian! |
|
| Volver arriba |
|
 |
Bastian Ens

Registrado: 21 Ago 2002Mensajes: 27Ubicación: Valencia
|
Publicado: Mar 27 Ago, 2002 1:23 pm Asunto: |
|
|
Por favor necesito vuestra ayuda con este tema. Es muy importante. _________________ SALU2............Bastian! |
|
| Volver arriba |
|
 |
Bastian Ens

Registrado: 21 Ago 2002Mensajes: 27Ubicación: Valencia
|
Publicado: Mar 27 Ago, 2002 6:07 pm Asunto: |
|
|
Lo que quiero hacer es que cuando se reciba algo por el puerto serie, se ejecute automaticamente un metodo de mi componente. _________________ SALU2............Bastian! |
|
| Volver arriba |
|
 |
Bastian Ens

Registrado: 21 Ago 2002Mensajes: 27Ubicación: Valencia
|
Publicado: Mar 27 Ago, 2002 9:58 pm Asunto: |
|
|
Gracias a todos por vuestro interes.
Mando esto para que no os rebaneis mas los sesos... por que ya he encontrado una solucion!.
El componente ascendente, tenia una funcion dinamica para estos casos...
Dichoso INGLES!
Güeno pos GRACIAS! _________________ SALU2............Bastian! |
|
| Volver arriba |
|
 |
|