Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Capturar excepcion al abrir carpeta no existente (https://www.clubdelphi.com/foros/showthread.php?t=86466)

jafera 14-08-2014 12:39:18

Capturar excepcion al abrir carpeta no existente
 
Hola a todos.

Tengo una duda de como poder capturar un posible error que suceda si al intentar abrir una carpeta de un directorio esta no exista. El código ( sin la excepción), es este:

Código Delphi [-]
procedure TF_Camions.Button5Click(Sender: TObject);
var i:integer;
begin
        //try
        OpenPictDialCam.InitialDir:='C:\Camiones_1.0\Imagenes\Camiones\'+DBEdit1.Text;
        If OpenPictDialCam.Execute then
        begin
                i:=Fotos_C.RecordCount;
                Fotos_C.Append;
                i:=i+1;
                Fotos_CDESCRIPCIO.Value := 'Foto:'+IntToStr(i);
                Fotos_CFOTO.LoadFromFile(OpenPictDialCam.FileName);
                Fotos_C.Post;
                F_ModulDades.CamionsFOTO.Value:='S';
        end;

        TumbNC.Close;
        TumbNC.Open;
        If TumbNC.RecordCount = 0 then
        begin
                DBCtrlGrid1.Visible:=False;
        end
        else
        begin
                TumbNC.Last;
                DBCtrlGrid1.Visible:=True;
                If (TumbNC.RecordCount >= 1) and (TumbNC.RecordCount <= 10) then
                begin
                        DBCtrlGrid1.ColCount:=TumbNC.RecordCount;
                end
                else
                begin
                        DBCtrlGrid1.ColCount:=10;
                end;
        end;
        //except
                    //Mensaje
        //end;
end;

Lo que hago es asignar el InitialDir del Open picture a la carpeta de las imagenes más el valor del DBEdit1 que realmente es el nombre de la carpeta que contiene las imagenes de esta ficha, hasta aquí funciona bien y es muy rápido el entrar las imagenes a la tabla.

Hoy pensdando un poco he llegado a la conclusión de que si por casualidad la carpeta llamada no existe porque aun no se ha creado, donde ira a parar el InitialDir?

He probado con un try except y no lo acabo de ver claro ya que me pasa de largo.

Me gustaria que si no se encuentra la carpeta me diera un mensaje de "Carpeta inexistente" y poder abortar la operación

Gracias por vuestra ayuda

Saludos calurosos veraniegos

Josep

engranaje 14-08-2014 12:48:41

No te valdría la pena comprobar primero si la ruta exite haciendo algo como esto?
Código Delphi [-]
if DirectoryExists(OpenPictDialCam.InitialDir) then
  ...
else
  ShowMessage(OpenPictDialCam.InitialDir+' no existe ')

jafera 14-08-2014 13:03:20

Gracias por la respuesta.

Es mucho más lógico lo que propones, lo pruebo ipso facto.

Saludos

Josep

jafera 14-08-2014 13:16:24

Ha sido una respuesta perfecta, adaptado y funcionando

Muchas gracias

Josep


La franja horaria es GMT +2. Ahora son las 16:07:34.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi