Zitat:
llerdings die entsprechenden Proceduren mit {$Q-}...{$Q+] klammern und immer den Standardwert wieder herstellen.
Nein so geht es nicht korrekt. Wenn dann so:
Delphi-Quellcode:
{$ifopt R+}
{ $define RangeCheckOn}
{$endif}
{$R-}
procedure OhneRangeCheck;
begin
end;
{$ifdef RangCheckOn $R+ $endif}
Man muß also selektiv erstmal abfragen ob $R+ aktiviert wurde und nur dann $R+ auch wieder einschalten, ansonsten würde man ja $R+ einschalten obwohl es vorher in den globalen Compilerswitches nicht aktiviert war.
Alternaiv kann man einen Switch lokal innerhalb der Procedure aktivieren, ich habe aber die Erfahrung gemacht das das je nach Compilerversion nicht richtig funktioniert bzw. Seiteneffekte provoziert.
Gruß hagen