Oder Du prüfst bereits VOR dem Fehler ob die Datei da ist.
ein IF NOT FileExists(FileName) then MessageDlg(...) else OpenFile(...); gibt Dir nicht nur die Möglichkeit eigene Fehlermeldungen zu bringen, sondern verhindert auch gleich, daß der Fehler in Windows eintritt.
Eine andere Möglichkeit wäre ein try-except Block. Auch hier kannst Du im Exceptionteil eine eigene Fehlermeldung generieren. Im Testlauf wird Dir im Gegensatz zum späteren Programmablauf allerdings auch der Windows-Fehler vom Debugger gemeldet.
_________________
"Der Mensch ist nicht was er sich vorstellt oder wünscht zu sein, sondern das was andere in ihm sehen."