RE:>Pero como lo hago, dame ejemplo
Ahí va un ejemplo:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, JPEG;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
ITop, ILeft: integer;
Imagenes: Array of TImage;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{Crea las imágenes}
procedure TForm1.Button1Click(Sender: TObject);
begin
SetLength (Imagenes, Length (Imagenes)+1);
Imagenes[Length(Imagenes)-1]:= TImage.Create (Self);
Imagenes[Length(Imagenes)-1].Parent:=Self;
Imagenes[Length(Imagenes)-1].Left:=ILeft;
Imagenes[Length(Imagenes)-1].Top:=ITop;
Imagenes[Length(Imagenes)-1].Picture.LoadFromFile('C:/1.jpg');
Imagenes[Length(Imagenes)-1].Visible:=true;
inc (ITop, 10);
inc (Ileft, 10);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ITop:=0;
iLeft:=0;
end;
{Mueve las imágenes}
procedure TForm1.Button2Click(Sender: TObject);
var
ImagenAMover: integer;
begin
ImagenAMover:=StrToInt(InputBox ('¿Qué imagen?', 'Imagen a mover', '0'));
if ImagenAMover>Length(Imagenes) then begin
ShowMessage ('Esa imagen no se ha creado');
exit;
end;
Imagenes[ImagenAMover].Left:=Imagenes[ImagenAMover].Left +200;
end;
end.