Davon das {$HINTS OFF} nicht funktioniert kann überhaupt keine Rede sein. Die Überwachung der Benutzung von Variablen ist ein Feature des Compiler Backends und ich würde behaupten das dieses nur zuverlässig für die komplette Methode deaktiviert werden kann. Im folgenden Beispiel wird der Hint für Foo nicht angezeigt, wenn bei #1 {$HINTS ON} deaktiviert wird. Bei anderen Hinweisen funktioniert das Deaktivieren auch auf Zeilenebene - für Prozedur Test2 wird der Hint durch {$HINTS OFF}/{$HINTS ON} nur zwei anstatt drei Mal ausgegeben. Für Hints gibt es im Gegensatz zu Warnungen keine Möglichkeit diese einzeln an-/auszuschalten also kann es nicht an irgendwelchen Optionen liegen.
Delphi-Quellcode:
program Hints;
{$APPTYPE CONSOLE}
procedure Test;
var
I, Foo: Integer;
begin
{$HINTS OFF}
for I := 0 to 1 do
Foo := 1;
{$HINTS ON}//#1
end;
{$HINTS ON}//#2
procedure Test2;
var
P: Pointer;
begin
P := nil;
Finalize(P);
{$HINTS OFF}
Finalize(P);
{$HINTS ON}
Finalize(P);
end;
begin
end.