Eigentlich hat keiner so richtig recht, und meiner Meinung macht Delphi nicht das, was es soll. Experimentell ist es so, daß die
letzte Anweisung für die gesamte
Unit gilt, das folgende Testprogramm gibt zweimal 0 aus, kommentiert man das letzte {$OVERFLOWCHECKS OFF} aus, so wird nur der Runtime Error 215 ausgegebeben, d.h. das erste inc macht schon den Fehler.
Wenn schon global, hätte ich vermutet, daß die erste Einstellung gilt. (BP7 verhält sich wie erwartet, d.h. der Check ist wirklich lokal)
Delphi-Quellcode:
program xx;
{$apptype console}
var
b1,b2: byte;
begin
b1 := 255;
b2 := 255;
{$r-}
{$OVERFLOWCHECKS OFF}
inc(b1);
{$OVERFLOWCHECKS ON}
writeln(b1);
inc(b2);
{$OVERFLOWCHECKS OFF}
writeln(b2);
end.
Gruß Gammatester