Hola,
La respuesta está en el viento... digo, en la propiedad "FileName" de los diálogos. De hecho lo más normal es hacer algo así:
Código Delphi
[-]
if dlgFileOpen.Execute then
Memo1.Lines.LoadFromFile(dlgFileOpen.FileName);
Pero, fíjate en el método "Execute". Es importante que esté donde está. Este método retorna "true" sólo si el usuario elige un archivo. En cualquier otro caso (cancela el diálogo, por ejemplo), "Execute" retorna "false", de modo que la condición no se cumple y no se intenta acceder a su propiedad "FileName", que estará vacía, entonces.