2010-05-08 4 views
7

У меня есть следующий код в приложении Delphi 2007:Delphi отключить предупреждения не удается

function TBaseCriteriaObject.RecursiveCount(
    ObjType: TBaseCriteriaObjectClass): integer; 
var  
    CurObj: TBaseCriteriaObject; 
begin 
    result := 0; 
{$WARNINGS OFF} 
    for CurObj in RecursiveChildren(ObjType) do 
    Inc(Result); 
{$WARNINGS ON} 
end; 

Который производит это предупреждение:

[DCC Warning] BaseCriteriaObject.pas(255): H2077 Value assigned to 'CurObj' never used 

Я понимаю предупреждение, но не хочу, чтобы изменить код , так как я могу избавиться от предупреждения, потому что {$ WARNINGS OFF}, похоже, не работает в этом случае?

ответ

7

Из справки Delphi:

в $ директива ПРЕДОСТОРОЖНОСТИ работает только на процедура или функция уровня зернистость. То есть вы можете окружить процедурой и функциями директивой $ WARNINGS, но не фактов в процедуре или функции .

+1

Cheers mate! Это также подсказка, а не предупреждение. {$ HINTS OFF} отключает его (когда вокруг процедуры, а не оператора) –

+2

. Параметр предупреждения, используемый для функции, - это любой параметр, действующий в момент, когда он достиг функции 'end'. –

+0

@Rob Kennedy: Интересное замечание. Вы, должно быть, видели источники компилятора :). – kludg

Смежные вопросы