Ver Mensaje Individual
  #1  
Antiguo 24-08-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Reputación: 21
gluglu Va por buen camino
Crear en ejecucion varias instancias de un mismo grupo de elementos

Saludos a tod@s !

He estado buscando en el foro pero lo que he encontrado no me resuelve mis dudas.

Quiero crear en tiempo de ejecución 70 'fichas' iguales, cada una de las cuales contiene 4 Label's, 6 Shape's y 1 Image. Me gustaría considerarlo como un Array para posteriormente poder referenciar directamente por el índice en el array.

He pensado algo así como :

Código Delphi [-]
type
  TRackCard = Record
    LabelA : TLabel;
    LabelB : TLabel;
    LabelC : TLabel;
    LabelD : TLabel;
    ShapeA : TShape;
    ShapeB : TShape;
    ShapeC : TShape;
    ShapeD : TShape;
    ShapeE : TShape;
    ShapeF : TShape;
    ImageA : TImage;
  end;
 
  TForm = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    RackCard : Array of TRackCard;
  public
    { Public declarations }
  end;

  ...
 
procedure TForm.FormCreate(Sender: TObject);
begin
  ...
  SetLength(RackCard,70);
 
  for I := 0 to 69 do begin
 
    RackCard[i] := TRackCard.Create;
 
    RackCard[i].ShapeA.Left        :=    ...;
    RackCard[i].ShapeA.Top         :=    ...;
    // sigo definiendo aqui todos los demás atributos de ShapeA
    ...
    RackCard[i].ShapeB.Left        :=    ...;
    RackCard[i].ShapeB.Top         :=    ...;
    // sigo definiendo aqui todos los demás atributos de ShapeB, etcétera
    ...
  end;
 
end;
pero así no me funciona al parecer.

Como tengo que definir TRackCard ? Como Record, como TObject, como TObjectList ? Y como referirme correctamente a cada uno de los elementos de RackCard tales como ShapeA, ShapeB, etc ?

Gracias como siempre por vuestros consejos.

Saludos
__________________
Piensa siempre en positivo !
Responder Con Cita