nlsgarcia, Creo que ya encontré el error, este esta en la función que utilizo para cerrar los objetos:
Código Delphi
[-]
procedure TfunGlobal.CloseObjet(AObjeto:Array of TObject);
var vIndice:Integer;
begin
for vIndice:= Low(AObjeto) to High(AObjeto) do begin
if Assigned(AObjeto[vIndice]) then FreeAndNil(AObjeto[vIndice])
end;
end;
Al parecer ciertos objetos se pasan por valor y no por referencia, ya que dentro del procedure freeandnil hace su trabajo y libera la memoria y los deja en nil, pero al salir del procedure dichos cambios no tienen efecto. Es muy raro ya que hasta donde se los objetos o clases siempre se pasan por referencia. Quizás exista algún error en la declaración del array que contiene los objetos...
saludos...