Also ich weiß nicht wie das in höheren Delphi Versionen ist, aber
Delphi-Quellcode:
begin
{$Q+}
...
{$Q-}
end;
beide Direktiven in einer Funktion klappt nicht bei mir. Wenn am Ende {$Q-} steht, hat bei mir {$Q+} am Anfang keine Wirkung. Es gibt bei mir keine Fehlermeldung.
Was bleib ist es auf zwei Funktionen zu verteilen:
Delphi-Quellcode:
function IncByte(var X: Byte; N: Byte = 1): Boolean;
procedure IncTest;
begin
{$OverFlowChecks On}
Inc(X, N);
end;
var
X2: Byte;
begin
X2 := X;
try
IncTest;
{$OverFlowChecks Off}
Result := False;
except
on EIntOverflow do
begin
{$OverFlowChecks Off}
X := X2;
Inc(X, N);
Result := True;
end;
end;
end;