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.
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.