Free gibt nur den Speicher frei und FreeAndnil setzt zusätzlich den Zeiger auf den Wert Nil. Im Programm kannst Du dann abfragen
Aber: In Deinem Fall solltest Du die Variable NIni lokal deklarieren, da Du diese auch nur lokal benötigst:
Delphi-Quellcode:
Procedure ...
var
Nini : TIniFile;
begin
Nini := ...
try
...
finally
NIni.Free;
end;
...
FreeAndNil geht auch, gibt aber hier keinen Sinn mehr, da auf NIni nach dem Verlassen der Procedure kein Zugriff mehr möglich ist.