Ver Mensaje Individual
  #7  
Antiguo 11-07-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Manuel.

Hola Manuel
Cita:
Empezado por Manuel Ver Mensaje
..., pero si cuando se redimensiona a menos elementos se produce el error.
Te pongo un ejemplo que inicializa, aumenta y por último disminuye el tamaño de un arreglo dinámico:
Código Delphi [-]
type
  TDynArray = array of Integer;

procedure TForm1.Button1Click(Sender: TObject);

  procedure Mostrar(v: TDynArray);
  var
    i: Integer;
  begin
    for i:= Low(v) to High(v) do Memo1.Lines.Add(Format('%d',[i]));
    Memo1.Lines.Add(Format('  Elementos: %d',[Length(v)]));
    Memo1.Lines.Add('--------------------');
  end;

var
  da: TDynArray;
  i: Integer;
begin
  Memo1.Lines.Clear;
  Memo1.ScrollBars:= ssVertical;
  // Inicializar en 4 elementos
  SetLength(da, 4);
  for i:= 0 to 3 do da[i]:= i;
  Mostrar(da);

  // Aumentar en 4 elementos
  SetLength(da, Length(da) + 4);
  for i:= 0 to 3 do da[High(da)]:= High(da)+1;
  Mostrar(da);

  // Reducir a dos elementos
  SetLength(da, 2);
  Mostrar(da);

  // Desasignar memoria asociada 
  Finalize(da);
end;
El resultado:
Código:
0
1
2
3
  Elementos: 4
--------------------
0
1
2
3
4
5
6
7
  Elementos: 8
--------------------
0
1
  Elementos: 2
--------------------
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 11-07-2014 a las 22:10:27.
Responder Con Cita