Ese es el problema, yo considero que no debería haber ningún problema. La unidad completa es la siguiente:
Código Delphi
[-]unit Declaraciones;
interface
uses
Classes,Math;
type
VectorIR=array of Double; VectorINT=array of Integer; MatrizIR=array of VectorIR;
clsHormiga=class(TObject) private
function DistanciaAlCudrado(k_Individuo:Integer; k_CG:Integer)ouble;
protected
public
ListaDeNodosAClasificar:VectorINT;
NumeroNodosPorClasificar:Integer;
Tk:VectorINT;
PosicionActualDeLaHormiga:Integer;
MatrizCG:MatrizIR;
VCardinalidades:VectorINT;
procedure IniciarCG;
procedure CamineYClasifique;
published
end;
var
PoblacionOriginaldeIndi:MatrizIR;
M,N,R:Integer;
Matriz_FeromonaIndi_CG:MatrizIR;
MatrizDeAcotaciones:MatrizIR;
Alpha,Betaouble; {Parámetros de la visibilidad y la feromona}
implementation
function clsHormiga.DistanciaAlCudrado(k_Individuo:Integer; k_CG:Integer)ouble;
var
i:Integer;
suma0ouble;
begin
suma0:=0;
for i:=0 to N-1 do begin
suma0:=suma0+sqr(PoblacionOriginaldeIndi[k_Individuo-1,i]-Self.MatrizCG[k_CG-1,i]);
end;
Result:=suma0;
end;
procedure clsHormiga.IniciarCG();
var
i,j:Integer;
begin
SetLength(Self.MatrizCG,R,N);
SetLength(Self.ListaDeNodosAClasificar,M);
SetLength(Self.VCardinalidades,R);
Randomize;
for i:=0 to R-1 do begin
for j:=0 to N-1 do begin
MatrizCG[i,j]:=Random*(MatrizDeAcotaciones[1,i]-MatrizDeAcotaciones[0,i])+ MatrizDeAcotaciones[0,i];
end;
end;
for i:=0 to M do begin
Self.ListaDeNodosAClasificar[i]:=i+1;
end;
Self.NumeroNodosPorClasificar:=M;
Alpha:=1;
Beta:=1;
end;
procedure clsHormiga.CamineYClasifique();
var
i,NumDeNodo:Integer;
Sumaouble;
VecDeProbabilidades:VectorIR;
begin
SetLength(VecDeProbabilidades,3);
end;
end.
Es claro que este último porcedure no está completo, el debe hacer varias cosas que he quitado para mostrar el error. Este error se genera cuando redefino el tamaño del vector VecDeProbabilidades, sin embargo, ese mismo trabajo se hace con otros vectores y no se genera el problema.
Sin embargo, me sigue lanzando el error, les agradezco que intenten ayudarme. Ya he realizado varios programas en Delphi 7 y esta es la primera vez que me pasa algo así, lo que trataré de hacer es iniciar de cero, reescribiré el código de nuevo esperando que el error no se repita. Gracias de todos modos y saludos...