ich würde das ganze anders lösen. Anstelle des Formular mit ".Show" anzuzeigen, bau einfach eine eigene funktion.
Delphi-Quellcode:
procedure TEinstellungForm.Execute;
begin
if (Bedingung) then
Show
else
exitok := false;
end;
somit sparst du dir zum Beispiel das schließen wenn etwas nicht klappt.