Ver Mensaje Individual
  #2  
Antiguo 19-04-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
Cuando "sueltas" la imagen lo que estas haciendo es colocar un TImage encima de otro, así que el espacio que ocupaba queda vació. Por eso cuando intentas mover una imagen al sitio que quedo vacío no funciona, porque el método que utilizas solo mueve una Timage sobre otro, no a un sitio vacío.

Una solución podrá ser intercambiar los sitios de las dos imágenes, algo así:
Código Delphi [-]
procedure Tfrm.ImageDragDrop(Sender, Source: TObject; X, Y: Integer);
var
  i,j: Integer;
begin
  if (Source is TImage) then 
  begin
    i := TImage(Source).Left;
    j := TImage(Source).Top;
    TImage(Source).Left := TImage(Sender).Left;
    TImage(Source).Top := TImage(Sender).Top;
    TImage(Sender).Left := i;
    TImage(Sender).Top := j;
    TImage(Sender).Picture.Graphic := nil;
   end;
end;
Responder Con Cita