Ver Mensaje Individual
  #5  
Antiguo 17-08-2004
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
Además de lo que dice Lepe lo cierto es que tu forma de asignar la longitud del arreglo es incorrecta; no me había percatado anteriormente.

En arreglos abiertos (como el que pasas como parámetro al procedimiento Ventanas) los índices siempre están basados en 0 de manera que High será la longitud del arreglo - 1.

Tal como tienes el ejemplo que pones, al haber sólo un elemento High es igual a 0 lo que provoca la violación de acceso ya que el arreglo dinámico tendrá longitud 0.

Puedes arreglar todo esto muy fácilmente cambiando High por Length pero haciendo la verificación que te indica Lepe:

Código Delphi [-]
if Length(Formularios) > 0 then
begin
  SetLength(Forma, Length(Formularios));

  for i := Low(Formularios) to High(Formularios) do
    Forma[i] := Formularios[i];
end;

// Saludos
Responder Con Cita