Ver Mensaje Individual
  #5  
Antiguo 30-09-2005
roedecker roedecker is offline
Miembro
 
Registrado: may 2004
Posts: 10
Reputación: 0
roedecker Va por buen camino
Ok, ok, aquí va...

En el evento DragOver del TImage, siendo FrameMapa el TFrame:

Código Delphi [-]
//movimiento hacia la izquierda
  if (X < FrameMapa.HorzScrollBar.Position + 10) then
      FrameMapa.HorzScrollBar.Position := FrameMapa.HorzScrollBar.Position - FrameMapa.HorzScrollBar.Increment;

//movimiento hacia la derecha
  if (X > FrameMapa.clientWidth + FrameMapa.HorzScrollBar.Position - 10) then
      FrameMapa.HorzScrollBar.Position := FrameMapa.HorzScrollBar.Position + FrameMapa.HorzScrollBar.Increment;

//movimiento hacia arriba
  if (Y < FrameMapa.VertScrollBar.Position + 10) then
      FrameMapa.VertScrollBar.Position := FrameMapa.VertScrollBar.Position - FrameMapa.VertScrollBar.Increment;

//movimiento hacia abajo
  if (Y > FrameMapa.clientHeight + FrameMapa.VertScrollBar.Position - 10) then
      FrameMapa.VertScrollBar.Position := FrameMapa.VertScrollBar.Position + FrameMapa.VertScrollBar.Increment;
Los ifs dependen de la posición del correspondiente ScrollBar ya que las X e Y del TImage van cambiando según cambia la parte visible del mismo.

Lo curioso es que lo he implementado en otro formulario parecido (usan incluso los mismos TFrame y TImage), y mientras que en uno el movimiento tiene una velocidad razonable, en el otro va muy rápido.
Responder Con Cita