Ver Mensaje Individual
  #4  
Antiguo 17-06-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Reputación: 19
rgstuamigo Va por buen camino
Arrow

Si de lo que se trata es de mover con el mouse, imágenes contenidas en un TImage pues puedes utilizar el evento OnMouseMove del TImage y poner el siguiente código:
Código Delphi [-]
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if ssLeft in Shift then
   begin
    Image1.left := Image1.left+x;
    Image1.Top := Image1.Top+y;
   end;
end;
.
En todo caso si el Componente TImage tuviera la propiedad "Handle" pues sería mas fácil aún , pero como no lo tiene ya que es un derivado o descendiente de la clase "TGraphicControl", pues con el anterior código se logra el objetivo.. En cambio todos aquellos componentes que tienen una propiedad "Handle" pues para poder moverlo con el mouse en tiempo de ejecucion se puede utilizar el mismo evento OnMouseMove del componente en cuestión y poner un código similar al siguiente:
Por ejemplo vamos a mover un Boton en tiempo de ejecucion:
Utilizando su respectivo evento OnMouseMove tenemos:
Código Delphi [-]
procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  ReleaseCapture;
  SendMessage(Button1.Handle, WM_SYSCOMMAND, $F012, 0);
end;
.
Eso es todo.
POSDATA: Ustedes pueden notar la diferencia visual entre ambos ejemplos al mover con el raton.
El primer ejemplo se puede aplicar a cualquier componente visual, pero el segundo sólo a componentes que tienen Handle.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 17-06-2010 a las 20:47:36.
Responder Con Cita