Vielleicht rufst Du nicht die erwarteten Funktionen auf... (wer weiss, denn der obige Code funktioniert erwartungsgemäß).
Schreib zur Sicherheit / zum Testen den Namensraum (Unitname) vor die Variablen und Funktionen:
Delphi-Quellcode:
{$I-}
System.AssignFile(F, '?invalid?');
System.Reset(F);
IoError := System.IOResult;
{$I+}