PDA

Ver la Versión Completa : Capturar excepcion al abrir carpeta no existente


jafera
14-08-2014, 12:39:18
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:

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?

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