2009-04-24 10 views
8

में निरंतर को असाइन करते समय त्रुटि प्राप्त करें मैं सभी पैच और अपडेट के साथ डेल्फी 2007 का उपयोग कर रहा हूं।* कभी-कभी * डेल्फी

मेरे पास एक फ़ाइल है जिसका उपयोग दो अलग-अलग परियोजनाओं द्वारा किया जाता है।

procedure MyProcedure; 
const 
    UniqueValue: integer = 0; 
begin 
    //some code 
    Inc(UniqueValue); 
    //some more code 
end; 

इंक() कमांड असफल चाहिए, क्योंकि आप एक निरंतर करने के लिए असाइन नहीं कर सकते: उस फ़ाइल में एक प्रक्रिया है, जो मैं इस प्रकार सरल है। एक प्रोजेक्ट में, मुझे उस प्रभाव में एक त्रुटि मिलती है (मैं उस परियोजना को "सटीक" कहूंगा)। दूसरी परियोजना में, मुझे कोई त्रुटि नहीं मिलती है (मैं इसे "बोगस" कहूंगा)। मुझे कोई चेतावनी भी नहीं मिलती है। मैं यह नहीं समझ सकता कि संकलक इस गलत कोड को क्यों देता है।

यहाँ है कि मैं क्या परियोजना बोगस में की कोशिश की है:

1 - एक लाइन के बीच में "slkdjflskdjf" टाइप की तरह, एक स्पष्ट त्रुटि परिचय

परिणाम: मैं एक त्रुटि है, जो कि साबित होता है मिल यह वास्तव में इस फ़ाइल को संकलित करने की कोशिश कर रहा है।

2 - .DCU हटाएँ, और इस परियोजना के पुनर्निर्माण

परिणाम: .DCU फिर से उत्पन्न होता है, फिर से साबित होता है कि परियोजना को सही मायने में इस गलत कोड संकलन है।

क्या किसी के पास यह विचार है कि यह व्यवहार क्यों होगा? और अधिक विशेष रूप से, यह एक परियोजना में क्यों होगा लेकिन दूसरा नहीं? क्या स्थिरांक को असाइन करने की अनुमति देने के लिए कुछ अस्पष्ट कंपाइलर विकल्प है?

एक अंतिम नोट: दोनों परियोजनाएं डेल्फी से परिवर्तित की जाती हैं 5. इसी कोड के साथ डेल्फी 5 के तहत, वे दोनों ठीक संकलित करते हैं।

संपादित करें: आपकी सभी मदद के लिए धन्यवाद। असाइन करने योग्य टाइप किए गए स्थिरांक निर्देश को बदलने के बाद, मैं दोनों परियोजनाओं में लगातार व्यवहार प्राप्त कर सकता हूं। मैंने आज कुछ नया सीखा ...

उत्तर

13

कंपाइलर विकल्पों में "असाइन करने योग्य टाइप किए गए स्थिरांक" नामक एक विकल्प है। इसे आपके कोड में "{$ J +}" के साथ भी सक्षम किया जा सकता है।

5

क्या यह हो सकता है कि ये परियोजनाएं $ जे कंपाइलर निर्देश की सेटिंग में भिन्न हों?

3

जैसा कि अन्य ने कहा है कि यह लगभग निश्चित रूप से {$J+} निर्देश है।

यदि आपके पास एक भिन्न उपकरण है तो आप परियोजना फ़ाइलों की तुलना कर सकते हैं कि वे अलग-अलग कैसे हैं - वे केवल टेक्स्ट फाइलें हैं - भविष्य में इसी तरह की समस्याओं को हल करने के लिए।

3

मैं परियोजना विकल्प, अनुभाग कंपाइलर जांचने और यह देखने के लिए सुझाव दूंगा कि आप कोई अंतर खोज सकते हैं या नहीं। हो सकता है कि आपके पास विकल्प बोगस प्रोजेक्ट में असाइन किए गए टाइप किए गए स्थिरांक सक्षम हैं।