Aso ... das ist ein anderes Paar Schuhe ...
wenn du es so erzeugst:
with TfrmSettings.Create(self) do
dann ist das Objekt, in dessen Methode dies geschieht, der Oner. der Owner gibt das Objekt wieder frei. Der Owner ist über die Property Owner abrufbar.
Die globale Variable frmSettings hat nix damit zu tun. Du könntest die Variable auch entfernen, dann hast du solche Probleme nichtmehr