PDA

Ver la Versión Completa : Mover una imagen encima de otra


maravert
23-02-2005, 17:28:12
Hola, Saben tengo el siguiente problema, si alguno de ustedes me ayuda os estaria enormemente agradecido.

Tengo por una parte un TImage (Timage1) con una imagen cargada, por el otro tengo un Tpanel que contiene un Timage o varios Timages, lo que necesito hacer es mover la imagen que se encuentra dentro del panel a la otra imagen que se encuentra fuera del Panel, en esta caso (Timage1).

La imagen que se encuentra dentro del panel si se mueve pero slo dentro del panel y al arrastrarla para colocarla en el Timage (Timage1) desaparece esta imagen.

Anexo el codigo para saber si alguien me puede ayudar.

Gracias a todos

Alejandro M.



unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Panel1: TPanel;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;


procedure Image2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Capturing : boolean;
MouseDownSpot:TPoint;
implementation
{$R *.dfm}
procedure TForm1.Image2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Capturing := true;
MouseDownSpot.X := x;
MouseDownSpot.Y := Y;
end;
procedure TForm1.Image2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if Capturing then begin
TImage(Sender).Left := TImage(Sender).Left - (MouseDownSpot.x - x);
TImage(Sender).Top := TImage(Sender).Top - (MouseDownSpot.y - y);
end;
end;
procedure TForm1.Image2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Capturing then begin
ReleaseCapture;
Capturing := false;
TImage(Sender).Left := TImage(Sender).Left - (MouseDownSpot.x - x);
TImage(Sender).Top := TImage(Sender).Top - (MouseDownSpot.y - y);
end;
end;
end.

marto
23-02-2005, 17:32:55
Como no edites tú mensaje y le pongas tags no hay dios que lo lea

maravert
24-02-2005, 01:04:45
Hola, en verdad no entiendo eso de los "Tags", en realidad siempre he usado el mismo formato, creo que estoy pidiendo la ayuda de una manera cortes, por favor si alkguien me dice que estoy haciendo mal, con mucho gusto lo corrijo,

Hasta pronto.

A. Maravert.