Alguien q sepa Delphi?

Estoy haciendo un editor de imágenes, y estoy implementando el arrastrar una imagen al estilo de un PDF.

Lo q pasa es que cuando pincho y arrastro la esquina superior izquierda de la imagen aparece justo encima del cursor, es decir, q pincho y la imagen no la deslizo justo desde donde pinché.

Como se q no me explico bien os pongo el codigo, la imagen esta encima del Form:

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);
var
ImagenPos, MousePos: TPoint;
DifX, DifY: integer;

begin
Windows.ScreenToClient(ScrollBox1.Handle, MousePos);
ImagenPos.X := Image1.Width;
ImagenPos.Y := Image1.Height;


// DragDetect se activa si es que existe movimiento de arrastre
// con el ratón en el area definida por el ScrollBox1 y en la posicion ImagePos

While DragDetect(ScrollBox1.Handle, ImagenPos) do

begin
// Pedimos la Posicion actual del Cursor
GetCursorPos(MousePos);

// Se convierte la posicion general a la posicion dentro del
// ScrollBox1 y se guarda en MousePos
Windows.ScreenToClient(ScrollBox1.Handle, MousePos);

Image1.Left:=MousePos.X;
Image1.Top :=MousePos.Y;

// Ver la imagen durante el arrastre
Application.ProcessMessages;
End;
end;





El tema está en lo de negrita, asigna la esquina superior izda de la imagen a la posicion del raton, pinche donde pinche, al arrastrar el cursor se va a la esquina para mover la imagen.

Espero q alguien pueda ayudarme.

salu2
0 respuestas