| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Mar 23 Sep, 2008 6:11 pm Asunto: Problema al querer detectar accion con el raton en un Form |
|
|
Buenas...
Tengo un Formulario en el que he insertado componente TImagen (una imagen bmp).
Quiero que al pulsar el boton Izquierdo del raton con el cursor sobre la imagen me realize una serie de operaciones.. Para ello e codificado un mensaje de windows de la forma siguiente:
| Código: |
class TFormulario : public TForm
{
.....
.....
......
//Mensaje de Windows al pulsar el boton Izquierdo del raton
void __fastcall WMLbuttonDown (TMessage Message);
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_LBUTTONDOWN, TMessage,
WMLbuttonDown);
END_MESSAGE_MAP (TForm);
......
......
......
void __fastcall TFormulario ::WMLbuttonDown (TMessage Message)
{
int xpos = LOWORD(Message.LParam); //posicion raton eje X
int ypos = HIWORD(Message.LParam); //posicion raton eje Y
........................
...........................
}
|
Como resultado obtengo lo que quiero si pulso el boton del raton en cualquier posicion del formulario....EXCEPTO si el cursor esta sobre la
imagen.....
Alguna Idea Gracias |
|
| Volver arriba |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Mar 23 Sep, 2008 8:24 pm Asunto: |
|
|
Claro, esto te ocurre porque tu imagen está en una ventana TImage, probablemente. Al ser distinta a Form1, los eventos se envían desde Form1 a Form1 y no desde TImage1 a Form1 a no ser que definas el evento de TImage y lo redirijas a Forn1.
Lo más simple es crear un evento desde las VCL, por defecto te lo dirige a Form1.
Saludos. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mar 23 Sep, 2008 8:38 pm Asunto: |
|
|
No veo la necesidad de interceptar ese mensaje cuando ya lo tienes en el evento OnMouseDown del TImage:
| Código: | if (Button == mbLeft)
Beep(1000, 100);
|
|
|
| Volver arriba |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Mar 23 Sep, 2008 9:24 pm Asunto: |
|
|
Claro _Leo, a eso me refería Yo cuando dije: | Cita: | | Lo más simple es crear un evento desde las VCL, por defecto te lo dirige a Form1. |
Saludos. |
|
| Volver arriba |
|
 |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Mie 24 Sep, 2008 3:21 pm Asunto: |
|
|
Gracias estabais en lo correcto..
Aveces te obzecas con el camino mas complicado cuando la solucion es mucho mas sencilla y esta delante de tus narices.
Gracias Otra Vez. |
|
| Volver arriba |
|
 |
|