Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-02-2007
zurech zurech is offline
Miembro
 
Registrado: jul 2005
Posts: 61
Poder: 19
zurech Va por buen camino
Detectar clic del ratón en toda la aplicación

Buenas a todos/as.

Os explico mi problema, necesito poder detectar cuando se hace clic en una animación Flash que por supuesto no tiene el evento OnMouseClic.
Por ello he pensado en detectar simplemente cuando hay un clic de ratón (sea donde sea) y entonces obtener las coordenadas del ratón para calcular si hace clic sobre la animación.

La putada es que no se como detectar que se ha hecho clic con el ratón.
He estado probando con el componente JvWindowHook de la Jedi Library, pero no lo consigo hacer funcionar.
También he visto por hay unos comentarios de roman (me parece) donde hace referencia a unas clases hechas por él sobre hooks, pero el enlace ya no funciona.

A ver si alguno/a sabeis como puedo conseguirlo.

Gracias de antemano y me parece que no he repetido ninguna pregunta ya hecha, si lo he hecho sorry.
__________________
noticiasfrikis, mi web de chorradas
Responder Con Cita
  #2  
Antiguo 05-02-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Bueno, supongo que la animación Flash, está embebida dentro de tu aplicación, y si es así, supongo que con un simple TApplicationEvents controlando el envento OnMessage y dentro de este procedimiento controlando algo tal como esto, debería ser suficiente.
Código Delphi [-]
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;  var Handled: Boolean);
begin
if Msg.message = WM_LBUTTONUP  THEN
ShowMessage('Click');
end;

Si no es así, sería cuestión de controlar la ventana donde está el Flash y controlar los mensajes de esta....

He realizado la prueba de insertar una imagen flash en un form mediante un TShockwaveFlash extraído del OCX correspondiente, y el procedimiento descrito anteriormente funciona correctamente
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO

Última edición por ArdiIIa fecha: 05-02-2007 a las 19:57:40.
Responder Con Cita
  #3  
Antiguo 05-02-2007
zurech zurech is offline
Miembro
 
Registrado: jul 2005
Posts: 61
Poder: 19
zurech Va por buen camino
Muchas gracias ArdiIIa funciona a la perfección.

Para los que, como yo, no sepan que es eso del TApplicationEvents, deciros que es un componente que encontrareis en la barra de componentes dentro del apartado Additional
__________________
noticiasfrikis, mi web de chorradas
Responder Con Cita
  #4  
Antiguo 05-02-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Otra alternativa a TApplicationEvents, es desviar en nuestra aplicación el proceso de los mensajes recibidos tal como:

Código Delphi [-]
private
  FClientInstance : TFarProc;
  FPrevClientProc : TFarProc;


procedure TFormMain.FormCreate(Sender: TObject);
begin
FClientInstance := MakeObjectInstance(ClientWndProc);
FPrevClientProc := Pointer(GetWindowLong(ClientHandle,GWL_WNDPROC));
SetWindowLong(ClientHandle,GWL_WNDPROC, LongInt(FClientInstance));
end;



procedure TFormMain.ClientWndProc(var Message: TMessage);
var
    Dc : hDC;
    Row,col: Integer;
    Bit      : TBitmap;
begin
   with Message do
     case Msg of
     WM_KEYDOWN:
       ProcesarTeclado(Message);
       bla, bla bla....
            Result := 1;
       end;
       else
         Result := CallWindowProc(FPrevClientProc,
                                  ClientHandle,
                                  Msg,
                                  wParam,
                                  lParam);
   end;


 end;
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Detectar clic derecho del raton The_figo API de Windows 4 10-01-2015 16:21:59
Cómo detectar una instancia de una aplicación Ana Tudela API de Windows 1 30-06-2005 13:20:13
Lanzar aplicacion al detectar conexion a internet Delphius API de Windows 16 30-03-2005 16:43:59
Detectar aplicacion a ser ejecutada. anitra_cattivo API de Windows 7 05-11-2004 19:52:41
Controlar pulsacion de una tecla desde toda la aplicacion Sick boy OOP 5 21-05-2004 18:30:48


La franja horaria es GMT +2. Ahora son las 22:40:42.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi