Ver Mensaje Individual
  #14  
Antiguo 25-10-2018
juniorSoft juniorSoft is offline
Miembro
 
Registrado: abr 2005
Posts: 178
Reputación: 20
juniorSoft Va por buen camino
Hola TavoBran,,


podrías hacer varios cambios

Código:
type
  TArrEdits =  array of array of TEdit;

procedure CrearEdits(var Edits:TArrEdits; MaxX, MaxY:integer);
var
   I, J:integer;
begin
   Button1.Visible := False;
    for i:=0 to MaxX-1 do
        for J:=0 to MaxY-1 do
            begin
               Edits[I, J] := TEdit.Create(Self);
               Edits[I, J] .Text := '';
               Edits[I, J] .Top := 21 * (i + 1);
               Edits[I, J] .Left := 21 * (j + 1);
               Edits[I, J] .Width := 20;
               Edits[I, J] .Height := 20;
               Edits[I, J] .AutoSize := False;
               Edits[I, J] .Enabled := False;
               Edits[I, J] .Parent := Panel1;
               Button3.Visible := True;
            end;
end;

procedure llenarEdits(var Edits:TArrEdits; MaxX, MaxY:integer);
var
  I, J:integer;

begin
       for i:=0 to MaxX-1 do
        for J:=0 to MaxY-1 do
            begin
                Edits[I, J].text :=IntToStr(Random(100));
           end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  ArrEdits:TArrEdits;
  MX, MY:integer; //maximo de  columnas y filas
begin
     //pedir al usuario los valores de MX y MY
    SetLength(ArrEdits, MX, MY); //Aquí se establece las dimenciones del array en dos dimensiones
   CrearEdits(ArrEdits);
   llenarEdits(ArrEdits);
end;

Un detalle que falto en el anterior ejemplo es que los parámetros debes declararlos por referencia.

Otra observación: los Arrays dinámicos empiezan en cero(0).

Saludos,
Responder Con Cita