Ver Mensaje Individual
  #18  
Antiguo 21-04-2015
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 416
Reputación: 15
bulc Va por buen camino
Intento de Array of Record

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
    { Private declarations }
  public
    { Public declarations }
  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

Última edición por bulc fecha: 21-04-2015 a las 13:02:33.
Responder Con Cita