Intento esto pero no lo puedo condensar:
Código Delphi
[-]
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage; Image2: TImage; Image3: TImage; Image4: TImage;
Button1: TButton; Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
Type
TImg_AR = Array of Record
L, T, R, B, Tg : Integer;
end;
Var
Img_A : TImg_AR;
I, A: Integer;
N: Integer;
Begin
Memo1.Clear;
Memo1.Lines.Add(' Puntos Left, Top, R=Left+Width, B=Top+Height, Tag' );
Memo1.Lines.Add(' Left, Top, Right, Bottom, Tag') ;
SetLength(Img_A, 4); for I :=0 To ComponentCount - 1 do
if (Components[i] is TImage) then
begin
for N := 0 to 3 do
begin
Img_A[N].L := TImage(Components[i]).Left; ;
Img_A[N].T := TImage(Components[i]).Top;
Img_A[N].R := TImage(Components[i]).Left + TImage(Components[i]).Width ;
Img_A[N].B := TImage(Components[i]).Top + TImage(Components[i]).Height ;
Img_A[N].Tg:= TImage(Components[i]).Tag;
end;
end;
For I := 0 to 3 do
Memo1.Lines.Add(' L' +IntToStr ( Img_A[i].L ) +' T'+ IntToStr (Img_A[i].T ) +
' R' + IntToStr ( Img_A[i].R ) +' B'+ IntToStr ( Img_A[i].B ) +' Tg' + IntToStr(Img_A[i].Tg) );
end;
end.
Código Delphi
[-]
Y en cambio con este código me funciona. A pesar de su 'pesadez'.
for I :=0 To ComponentCount - 1 do
if (Components[i] is TImage) then
begin
if (Components[i].Name ='Image1') then
begin
Img_A[0].L := TImage(Components[i]).Left; ;
Img_A[0].T := TImage(Components[i]).Top;
Img_A[0].R := TImage(Components[i]).Left + TImage(Components[i]).Width ;
Img_A[0].B := TImage(Components[i]).Top + TImage(Components[i]).Height ;
Img_A[0].Tg:= TImage(Components[i]).Tag;
end;
if (Components[i].Name ='Image2') then
begin
Img_A[1].L := TImage(Components[i]).Left; ;
Img_A[1].T := TImage(Components[i]).Top;
Img_A[1].R := TImage(Components[i]).Left + TImage(Components[i]).Width ;
Img_A[1].B := TImage(Components[i]).Top + TImage(Components[i]).Height ;
Img_A[1].Tg:= TImage(Components[i]).Tag;
end;
Te ruego le des un vistazo a ver qué hago mal. Muchas gracias por tu tiempo.
bulc