Programación General > C++ Builder

 Re: Evento OnClick

(1/2) > >>

gmartin50:
Ayudenme Por Favor.

Dentro de una de mis clases he creado un objeto TImage que dibuja una imagen en tiempo de ejecución.

Necesito manejar el evento OnClick de esa imagen y no se como hacerlo.

Es decir , cuando corro el programa un botón hace que la imagen aparezca, pero necesito también poder hacerle click a esa imagen y ejecutar una función.

Gracias por su ayuda.

Ruso:
Prueba a crear la imagen en tiempo de diseño, pero manteniéndola oculta(propiedad Visible=false), y que lo que haga el botón en vez de crearla sea solo mostrarla, y asi puedes definir el evento OnClick de la imagen en tiempo de diseño.

_Viktor:
Holas, si quieres hacerlo en forma completamente dinamica hazlo asi:

 
--- Código: Text --- /****************UNIT1.H**********///--------------------------------------------------------------------------- #ifndef Unit1H#define Unit1H//---------------------------------------------------------------------------#include <Classes.hpp>#include <Controls.hpp>#include <StdCtrls.hpp>#include <Forms.hpp>#include <ExtCtrls.hpp>//---------------------------------------------------------------------------class TForm1 : public TForm{__published:    // IDE-managed Components        TButton *Button1;        TImage *Image1;        void __fastcall Button1Click(TObject *Sender);private:    // User declarationspublic:     // User declarations        void __fastcall MiOnClick(TObject *Sender);        __fastcall TForm1(TComponent* Owner);};//---------------------------------------------------------------------------extern PACKAGE TForm1 *Form1;//---------------------------------------------------------------------------#endif   
y finalmente:

 
--- Código: Text --- void __fastcall TForm1::Button1Click(TObject *Sender){   TImage *Imagen = new TImage(this);  Imagen->Top = 10;  Imagen->Left = 10;  Imagen->Parent=this;//Form1  Imagen->Picture->LoadFromFile("d:avathar2.bmp");  Imagen->Show();  Imagen->OnClick = MiOnClick;}//--------------------------------------------------------------------------- void __fastcall TForm1::MiOnClick(TObject *Sender){  ShowMessage("Esta haciendo Click!");}//---------------------------------------------------------------------------   
Asi asignas en tiempo de ejecucion el evento MiOnClick al OnClick de Imagen, con lo que te ahorras poner un TImage en diseño, que creo es lo que querias evitar.  Espero te sirva aun.

Saludos.-:good:

Satyr:
Tambien puedes hacer lo siguiente

void __fastcall TForm1::Button1Click(TObject *Sender)
{

  Image1->Picture->LoadFromFile("c:imagen.jpg");
    Image1->Stretch = true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Image1Click(TObject *Sender)
{
//Aqui llamas a tu funcion
}
//---------------------------------------------------------------------------


Espero q esto te sirva de ayuda :suerte:

_Viktor:

--- Citar ---Originalmente publicado por Satyr
Tambien puedes hacer lo siguiente

void __fastcall TForm1::Button1Click(TObject *Sender)
{

  Image1->Picture->LoadFromFile("c:imagen.jpg");
    Image1->Stretch = true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Image1Click(TObject *Sender)
{
//Aqui llamas a tu funcion
}
//---------------------------------------------------------------------------


Espero q esto te sirva de ayuda :suerte:
--- Fin de la cita ---


Satyr, creo que la idea era usar un TImage Creado en tiempo de ejecucion y asignarle un evento en forma dinamica, cosa que no veo en tu codigo.  ¿Estoy en lo correcto ?

Saludos!

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa