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 

EVENTOS DE COMPONENTES VCL

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: EVENTOS DE COMPONENTES VCL Responder citando

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. Question
_________________
SALU2............Bastian!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Hola TOÑO! Very Happy

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Por favor necesito vuestra ayuda con este tema. Es muy importante.
_________________
SALU2............Bastian!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias a todos por vuestro interes.

Mando esto para que no os rebaneis mas los sesos... por que ya he encontrado una solucion!. Laughing

El componente ascendente, tenia una funcion dinamica para estos casos...
Dichoso INGLES!

Güeno pos GRACIAS!
_________________
SALU2............Bastian!
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.