Vamos a ver. Una clase no es lo mismo que un objeto. Una clase no es sino el "molde" para hacer objetos. Entonces,
un objeto de la clase Hormiga, no puede acceder, así sin más, a propiedades de la clase Colonia, pues, ¿de qué Colonia en particular se trata?
Es de suponerse que una hormiga pertenece a una colonia y puede haber muchas colonias. Entonces, cada hormiga debbe especificar a qué colonia pertenece. La manera de hacer esto es agregando a la clase Hormiga un apropiedad de tipo Colonia:
Código Delphi
[-]
TColonia = class;
THormiga = class
public
Colonia: TColonia; procedure CalcularCG_dada_Clasificacion;
end;
TColonia = class
public
Matriz_FeromonaIndi_CG:MatrizIR;
end;
El método CalcularCG_dada_Clasificacion de la clase Hormiga podrá hacer referencia a la colonia a la que pertenece la hormiga:
Código Delphi
[-]
procedure THormiga.CalcularCG_dada_Clasificacion;
begin
Self.Colonia.Matriz_FeromonaIndi_CG ...
end;
Dependiendo de cómo construyas tus objetos, tendrás que asignar la colonia a cada hormiga. Si la colonia ya existe podrías hacerlo en el constructor de la clase Hormiga, pasando la colonia como parámetro:
Código Delphi
[-]
constructor THormiga(AColonia: TColonia);
begin
inherited;
Self.Colonia := AColonia;
end;
Por último, nota que, aun cuando puedes nombrar tus clases de cualquier manera, yo he puesto el prefijo T en lugar de cls, ya que es lo que se acostumbra en delphi.
// Saludos