Ver Mensaje Individual
  #2  
Antiguo 18-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Reputación: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
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.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 18-10-2006 a las 10:20:07.
Responder Con Cita