[Delphi] Błędy I/O - funkcja z i bez

0

potrzebne mi coś w tym stylu tylko nie wiem jak to zrobić w jednej procedurze

function costam_z_IO: boolean;
begin
  Result := true;
  try
    costam1;
    costam2;
    ...
    dluga procedura ...
    ...
  except
    Result := false;
  end;
end;

function costam_bez_IO: boolean;
begin
  {$I-}
  Result := true;
  try
    costam1;
    costam2;
    ...
    dluga procedura ...
    ...
  except
    Result := false;
  end;
  {$I+}
end;

procedure wywolaj;
var b: boolean;
begin
  b := costam_z_IO;
  if not b then
    repeat until costam_bez_IO;
end;

chciałbym nie pisać dwa razy jednej procedury tyle że za pierwszym razem jest wywołana ze sprawdzaniem błędów I/O a za drugim razem nie, {$I-} można zastąpić dawając każdą procedurę która można dać błąd I/O w try ale to by było pełno tych try'ów i wyglądałoby jeszcze tragiczniej ...

0

Nie sprawdzałem, ale może można tak:

function costam: boolean;
begin
  Result := true;
  try
    costam1;
    costam2;
    ...
    dluga procedura ...
    ...
  except
    Result := false;
  end;
end;

procedure wywolaj;
var b: boolean;
begin
  {$I-}
  b := costam;
  {$I+}
  if not b then
    repeat until costam;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1