Disculpen, pero aunque el FileExists evita el problema, lo que sucede aquí es que se está mandando abrir el archivo aun cuando el usuario haya cancelado la operación. Lo lógico sería:
Código Delphi
[-]
if OpenDialog1.Execute then
begin
...
LoadFromFile(OpenDialog1.FileName);
...
end;
De esta manera evitamos preguntar por la existencia de un archivo que de antemano sabemos que no existe cuando el usuario cancela el diálogo.
// Saludos