2010-05-08 19 views
7

Mam następujący kod w aplikacji Delphi 2007:Delphi wyłączyć ostrzeżenia nie

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; 

która produkuje to ostrzeżenie:

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

Rozumiem ostrzeżenie, ale nie chcesz, aby zmienić kod , więc jak mogę się pozbyć ostrzeżenia, ponieważ {$ WARNINGS OFF} nie działa w tym przypadku?

Odpowiedz

7

od pomocy Delphi:

$ dyrektywa OSTRZEŻENIA działa tylko na procedury lub funkcji poziomie szczegółowości. Oznacza to, że można otoczyć całe procedury i funkcje przy pomocy dyrektywy $ WARNINGS, ale nie można ich używać w ramach procedury lub funkcji .

+1

Pozdrawiam mate! Wydaje się również być wskazówką, a nie ostrzeżeniem. {$ HINTS OFF} wyłącza tę funkcję (jeśli chodzi o procedurę, a nie instrukcję). –

+2

Ustawienie ostrzeżenia użyte dla funkcji to ustawienie, które obowiązywało w momencie, w którym dotarło do funkcji "koniec". –

+0

@Rob Kennedy: Interesująca uwaga. Musiałeś zobaczyć źródła kompilatora :). – kludg

Powiązane problemy