Ver Mensaje Individual
  #2  
Antiguo 29-03-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola,

Cita:
Empezado por santiago14
No quiero ser comparativo pero en Visual Basic los componentes tienen una propiedad index la cual me permite armar esa matriz de controles
De cuando alguna vez programé en VB, recuerdo que esa es una de las pocas cosas que se extrañan en Delphi. No obstante, no es difícil ingeniárselas para hacer algo similar.

Declara un arreglo de TEdit en tu formulario:

Código Delphi [-]
type
  TForm1 = class(TForm)
    (* Panel contenedor de los edits *)
    Panel1: TPanel;

    (* Edits insertados en el formulario *)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    ...

    private
      Edits: array of TEdit;
  end;

Coloca todos los Edit dentro de un mismo Panel que no contenga ningún otro control. Esto no es estrictamente necesario pero facilita el llenado del arreglo.

En el constructor del formulario pon:

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
  I: Integer;

begin
  (* Asignas memoria para el arreglo *)
  SetLength(Edits, Panel1.ControlCount);

  (* Asignas los Edits del formulario al arreglo *)
  for I := 0 to Panel1.ControlCount - 1 do
    Edits[i] := TEdit(Panel1.Controls[i]);
end;

Con esto ya puedes manipular las propiedades de los edits del formulario através del arreglo Edits, por ejemplo:

Código Delphi [-]
var
  I: Integer;

begin
  for I := 0 to Panel1.ControlCount - 1 do
    Edits[i].Text := Format('Cuadro de edición %d', [i]);
end;

// Saludos
Responder Con Cita