Tema: Consulta
Ver Mensaje Individual
  #8  
Antiguo 09-08-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Reputación: 24
ArdiIIa Va por buen camino
Cita:
Empezado por cHackAll
Estimado compañero, el comentario fue de las mejores intenciones no era para que respondas de esa forma y casi que ni estaba orientado a "alguien". Me parece un tema curioso por eso yo participo. Lo que comentabas del WndProc tampoco funcionará por la explicacion que di con anterioridad.



Yo creo que si.

Saludos y haber que hacemos...
Estimado cHackAll, solamente respondí a tu pregunta
Cita:
Lo probaste ArdiIIa?
Tal vez no del modo adecuado, pero ahora me surge la duda de si tú lo has probado?, porque reitero que SI FUNCIONA.

En cuando a lo de capturar los mensajes del componente, bueno pues... en vez de andar "hackeando componentes", la prueba que hago es ir directamente a por su WndProc y el resultado es este....

Código Delphi [-]
procedure TFormMain.Button1Click(Sender: TObject);
begin
FNuevaInstancia := MakeObjectInstance(NuevoWndProc);
FPrevInstancia  := Pointer(GetWindowLong(ScrollBox1.Handle,GWL_WNDPROC));
SetWindowLong(ScrollBox1.Handle,GWL_WNDPROC, LongInt(FNuevaInstancia));
end;



procedure TFormMain.NuevoWndProc(var Message: TMessage);
begin
   with Message do
     case Msg of
       WM_RBUTTONDBLCLK :
       begin
          ShowMessage('DOBLE CLICK');
          Result := 1;
       end;
       WM_LBUTTONUP :
       begin
          ShowMessage('UN CLICK');
          Result := 1;
       end;

       else
         Result := CallWindowProc(FPrevInstancia,
                                  ScrollBox1.Handle,
                                  Msg,
                                  wParam,
                                  lParam);
   end;


 end;



Ciertamente, NO FUNCIONA.

Pero para salir del paso, observarás que he cambiado lo que debería ser el botón izquierdo por el derecho, y de ese modo SI FUNCIONA... Aunque cambia la mecánica, podría ser una solución.


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