2010-05-08 6 views
7

je le code suivant dans une application Delphi 2007:Delphi désactiver les avertissements échoue

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; 

qui produit cet avertissement:

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

Je comprends l'avertissement, mais ne veulent pas changer le code , alors comment puis-je me débarrasser de l'avertissement parce que {$ WARNINGS OFF} ne semble pas fonctionner dans ce cas?

Répondre

7

De Delphi:

La directive AVERTISSEMENTS $ ne fonctionne que sur la procédure ou au niveau de la fonction de granularité . Autrement dit, vous pouvez entourer des procédures et des fonctions entières avec la directive $ WARNINGS, mais pas blocs d'instructions dans une procédure ou une fonction.

+1

Salutations! Il semble également être un indice, pas un avertissement. {$ HINTS OFF} le désactive (lors de la procédure, pas de l'instruction) –

+2

Le paramètre d'avertissement utilisé pour une fonction est celui qui était en vigueur au moment où elle a atteint la fin de la fonction. –

+0

@Rob Kennedy: Remarque intéressante. Vous devez avoir vu les sources du compilateur :). – kludg

Questions connexes