Juntando lo que te han dicho, yo usaría este:
Código Delphi
[-]
msg := '';
try
try
with Mfd do
begin
dirpadrao := ReadString('MFD','DiretorioPadrao','');
pathorigem := ReadString('MFD','PathOrigem','');
pathdestino := ReadString('MFD','PathDestino','');
arquivoorigem := ReadString('MFD','NomeArquivoOrigem','');
arquivodestino := ReadString('MFD','NomeArquivoDestino','');
end;
if not DirectoryExists(dirpadrao) then
if not CreateDir(dirpadrao) then
msg := 'Năo foi possível criar o diretório padrăo';
SWEDA_CapturarDispositivo(1,0,'',0,15000);
SWEDA_ReproduzirFitaDetalhe(PathOrig,PathDest,dtIni,dtFim,0);
CapeadorReducaoZ;
CapeadorItens;
GravaReducao_Z;
GravaItens;
if not DeleteFile(dirpadrao) then
msg := 'Năo foi possível deletar arquivos no diretório padrăo';
finally
if (msg <> '') then begin
Warning(msg);
end;
end;
except
on E:Exception be begin
raise;
end;
end;
Utilizando lo que hay en el finally sólo sacas el mensaje cuando exista error. Además siempre compruebas si lo ha habido; Por ultimo, queda el Except, por si ocurre cualquier otro error inesperado, que tengas constancia de él.
Tal vez, yo lo organizaría de otra forma, pero mantendría esos elementos.