Hola,
Generalmente no es en el evento "OnClose" del componente que mencionas donde se accede a la imagen en cuestión. De hecho es posible que en ese evento la propiedad "FileName" no sea la correcta: esto deberías comprobarlo, simplemente, echándola un vistazo ("ShowMessage") o, directamente, viendo si existe el archivo con "FileExists" por ejemplo.
Pero, como he dicho, como norma general (vale para el resto de cuadros de diálogo similares) se accede a la propiedad "FileName" acto seguido de presentar al usuario el diálogo en cuestión. Es más fácil verlo que otra cosa:
Código Delphi
[-]
begin
with TOpenPictureDialog.Create(Self) do
begin
if(ShowModal = mrOk)
begin
ShowMessage(FileName);
end;
end;
end;
O, de otro modo:
Código Delphi
[-]
var
dlg: TOpenPictureDialog;
begin
dlg := TOpenPictureDialog.Create(Self);
try
if dlg.ShowModal = mrOk then
begin
ShowMessage(dlg.FileName);
end;
finally
dlg.Free;
end;
end;
Nota que el código, aunque sencillo, no está comprobado: puede que se me fuera alguna cosa, pero, la idea que trata de exponer es la siguiente: se muestra al usuario el diálogo de forma "modal", esto es, el usuario deberá elegir un archivo de imagen (en este caso) o, simplemente, cancelar el diálogo.
Tú únicamente estarás pendiente de que cuando se cierre el diálogo "ShowModal" te retorne la constante "mrOk", lo que significará que el usuario ha elegido, efectivamente, un archivo. Entonces puedes obrar en consecuencia y hacer lo que tengas que hacer con dicho archivo. En todo caso no dejes de revisar las opciones conque cuentan estos tipos de diálogos.