Hola,yo de nuevo.
Ando peleando con un Timage para moverlo sobre la superficie de un Tpanel.
Lo hago con esta rutina:
Código Delphi
[-]
procedure TForm1.barcoMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
ImagenPos,MousePos: TPoint;
begin
While DragDetect(fondo.Handle, ImagenPos) do
begin
GetCursorPos(MousePos);
Windows.ScreenToClient(fondo.Handle, MousePos); (Sender as Timage).Left:=MousePos.X - X;
(Sender as Timage).Top :=MousePos.Y - Y;
Application.ProcessMessages;
end;
end;
En un principio se notaba un parpadeo continuo y dañino a los ojos (como si fuera el canal plus codificao,sin exagerar) si la imagen arrastrada se salía lo más mínimo del area del Tpanel (que coincide con el área del form).
Eso lo he solucionado poniendo a TRUE la propiedad fondo.DoubleBuffered.
Ya no hay parpadeo,pero ahora,si la imagen se sale del área (sólo ocurre cuando lo hace por arriba o por la izquierda) el Tpanel,junto con todas las cositas que tiene puestas se deslizan hacia el lado contrario,quedándose la ventana vacía.Es un efecto muy curioso peo me tiene bien mosqueado.
¿Alguna idea?