2010-05-08 17 views
7

मैं एक डेल्फी 2007 आवेदन में निम्न कोड:डेल्फी अक्षम चेतावनी विफल रहता है

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 

मैं चेतावनी समझते हैं लेकिन कोड को बदलने के लिए नहीं करना चाहते हैं , तो मैं चेतावनी से कैसे छुटकारा पा सकता हूं क्योंकि {$ चेतावनी बंद} इस मामले में काम नहीं कर रही है?

उत्तर

7
डेल्फी सहायता से

:

$ चेतावनी निर्देश केवल प्रक्रिया या समारोह स्तर का पठन स्तर पर काम करता है। यही कारण है, यदि आप एक प्रक्रिया या समारोह के भीतर पूरे प्रक्रियाओं और $ चेतावनी निर्देश के साथ काम करता है, लेकिन बयान के नहीं ब्लॉक के चारों ओर कर सकते हैं।

+1

चीयर्स साथी! यह एक संकेत भी नहीं है, चेतावनी नहीं। {$ रवाना संकेत} यह अक्षम कर देता है (जब प्रक्रिया, नहीं बयान के आसपास) –

+2

चेतावनी एक समारोह के लिए इस्तेमाल किया सेटिंग है जो कुछ सेटिंग बिंदु पर प्रभाव में था यह समारोह के 'end' पर पहुंच गया। –

+0

@ रोब केनेडी: दिलचस्प टिप्पणी। आपने कंपाइलर स्रोतों को देखा होगा :)। – kludg

संबंधित मुद्दे