SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: angie1919 en Miércoles 2 de Junio de 2004, 15:17

Título: Llamar A Un Manejador De Eventos Desde El Código
Publicado por: angie1919 en Miércoles 2 de Junio de 2004, 15:17
Hola a todos! necesito saber si es posible llamar a un manejador de eventos desde el código, en cualquier momento. Supongo q lo sabréis, pero para ser más clara, cuando hablo de manejador de eventos me refiero, por ejemplo, a : Button1Click() o Table1FilterRecord() ,etc.
 
En mi caso, lo quiero hacer, para poder pasar un filtro a una tabla, cada vez que aprieto un botón, y ahora mismo solo se hace cuando ejecuto la aplicación.
 
Por favor, necesito ayuda urgente. GRACIAS!!
Título: Re: Llamar A Un Manejador De Eventos Desde El Código
Publicado por: QliX=D! en Jueves 3 de Junio de 2004, 00:56
que?
Explicate mejor, no entendi bien... a ver.. si decodifico algo...

No, sorry, no entiendo, tomate tu tiempo para escribir.

Pero a ver.
Si lo que queres llamar es a un manejador de eventos de otro formulario usa:

OtroForm->Nombremanejador(/*Parametros*/);


Caso contrario con Nombremanejador(/*parametros*/) alcanza
Título: Re: Llamar A Un Manejador De Eventos Desde El Código
Publicado por: angie1919 en Sábado 5 de Junio de 2004, 00:34
A ver si me puedo explicar mejor. Estoy trabajando con los componentes TTable, para acceder a una base de datos. Y quiero aplicar un filtro a uno de ellos. Para ello, pongo el campo "Filtered" a "true" y pongo el filtro correspondiente dentro del manejador de eventos Table1FilterRecord() . El problema es que el filtro se ejecuta al entrar al "form" donde se encuentra la tabla, y yo quiero que se ejecute, cuando aprieto un botón del formulario. Es por eso , que me gustaría llamar al manejador nombrado, para poder ejecutarlo cuando a mi me parezca... Espero haber sido más clara esta vez.

Muchas Gracias de nuevo

Salu2
Título: Re: Llamar A Un Manejador De Eventos Desde El Código
Publicado por: carquemo en Lunes 7 de Junio de 2004, 16:29
No se exactamente cual es problema pero
¿ no te funciona llamando al metodo directamente ?, si ese el caso pueden ser varias cosas:

¿es miembro de la clase del formulario?, si no lo has declarado en alguna parte (public, private, protected) del formulario, es posible que no este accesible.

¿Le pasas los parámetros correctos? si es un metodo de los que se crean automáticamente, suelen tener un monton de parámetros, busca los correctos

yo hago cosas "parecidas"
Código: Text
  1.  
  2. void __fastcall TForm1::AulaMouseMove(TObject *Sender, TShiftState Shift,
  3.       int X, int Y)
  4. {
  5.     if (arrastrando)
  6.         MonAlumnoMouseMove(Sender, Shift, X, Y);
  7. }
  8.  
  9. void __fastcall TForm1::MonAlumnoMouseMove(TObject *Sender,
  10.       TShiftState Shift, int X, int Y)
  11. {
  12.      // aqui iria el código común a los dos eventos
  13. }
  14.  
  15.  
Título: Re: Llamar A Un Manejador De Eventos Desde El Código
Publicado por: ChangSoft en Lunes 21 de Junio de 2004, 02:16
Claro angie1919 que se puede, supongamos que ttienes el evento creado void __fastcall TWinPrincipal::Salir1Click(TObject *Sender) el cual lo creaste con un button y el cual hace algo cuando plo precionas

Bueno ahora si en otra parte del cogigo necesitas que se haga nuevamente pero sin dar click al boton solo debes de poner:

Salir1->Click();

y asi llamas al evento desde cualquier parte del codigo, espero te sirva