2011-02-01 15 views
6

मेरे पास यूनिट यूनिट MyFrom नामक इकाई में संग्रहीत MyForm नामक एक फ़ॉर्म है। बेशक डेल्फी स्वचालित रूप से इस कोड कहा:आईडीई-निर्मित फॉर्म चर को हटाने के लिए सुरक्षित है?

TYPE 
    TMyForm = class(TForm) 
    private 
    public 
end; 

var MyForm: TMyForm; 

लेकिन मैं उस इकाई से वर घोषणा हटा दिया। किसी ने कहा कि इससे आईडीई के साथ समस्या हो सकती है। क्या यह सच है? क्या आईडीई को उस चर की आवश्यकता है?


संपादित करें:

MyForm नहीं स्वचालित रूप से बनाया जाता है। उपयोगकर्ता उस फॉर्म को रनटाइम पर बनाता है।

उत्तर

13

मैं का उपयोग नहीं करते ऑटो बना सकते हैं और मैं प्रपत्र संदर्भों वाले वैश्विक चर का उपयोग कभी नहीं किया है। यह ठीक काम करता है।

+0

पुष्टि के लिए धन्यवाद। मैं भी ऐसा ही करता हूं। +1 – Ampere

+1

+1। मेरी इच्छा है कि ** ** ** स्वचालित रूप से स्वतः-निर्माण सूची में नए रूपों को जोड़ने के लिए कोई विकल्प नहीं था। मेरी इच्छा है कि ** ** ** उस समस्या को "var" बनाने का विकल्प न हो। ओह ठीक है ... –

+0

@Cosmin एक विकल्प है। इसे "ऑटो फॉर्म फॉर्म और डेटा मॉड्यूल" कहा जाता है। ऐसा लगता है कि इसका कोई प्रभाव नहीं है !! जाहिर है, मैं इसे सही नहीं कर रहा हूं, या दस्तावेज़ीकरण को गलत समझ रहा हूं। –

3

मैं हाँ कहूंगा जब आप स्वचालित रूप से फॉर्म बनाना चाहते हैं, क्योंकि आपको इस चर को TApplication.CreateForm विधि में पास करने की आवश्यकता है।

+3

या अधिक सटीक रूप से, जब आप स्वत: संसाधित रूपों में कोई फॉर्म जोड़ते हैं तो _IDE_ ऐसा करना चाहता है। यदि आप इसे स्वयं करना चाहते हैं, तो आप कहीं भी वैरिएबल डाल सकते हैं। आपको वैसे भी autocreation overuse नहीं करना चाहिए। –

+0

कृपया मेरी संपादन – Ampere

+0

पुष्टि के लिए धन्यवाद देखें। +1 – Ampere

7

प्रोजेक्ट .dpr फ़ाइल में Application.CreateForm(TMyForm, MyForm); लाइन को निकालें और आपको कोई समस्या नहीं है।

आप स्वचालित रूप से रूप बनाने न हो, तो आप अभ्यस्त किसी भी समस्याओं

+0

कृपया मेरा अपडेट देखें। – Ampere

+1

@Altar: फिर कोई समस्या नहीं होगी – Bharat

+0

पुष्टि के लिए धन्यवाद। +1 – Ampere

3

प्रोजेक्ट विकल्प पर जाएं, और सुनिश्चित करें कि फ़ॉर्म स्वचालित रूप से नहीं बनाया गया है। फिर आप फॉर्म इंस्टेंस वैरिएबल को सुरक्षित रूप से हटा सकते हैं। (अन्यथा, आप सिर्फ एक संकलक त्रुटि प्राप्त होगी।)

+0

हाय। मैं उस फॉर्म को स्वतः नहीं बनाऊंगा। +1 – Ampere

2

आप डीपीआर-फ़ाइल में uses या contains खंड में इस लाइन को बनाए रखना चाहते हो सकता है:

Unit1 in 'Unit1.pas' {Form1}; 

यदि आप (या आईडीई) {Form1} -comment को हटा देता है, तो आपका फॉर्म Shift+F12 सूची में दिखाई नहीं देगा - केवल Ctrl+F12 -list में।

+0

+1; मैंने देखा है कि इतनी सारी परियोजनाएं इसे पेंच कर रही हैं (क्योंकि लोग सोचते हैं कि वे स्वयं हैं।डीपीआर; आप नहीं करते: आईडीई का डीपीआर है, आप इकाइयों के मालिक हैं। लोग अपने सभी विशेष कोड और सम्मेलनों को "मेनयूनीट" में चिपकते हैं)। –

+4

@ जेरोन वेल, मैं असहमत हूं। आईडीई इसे खराब कर देता है। मैं अपनी परियोजना में इकाइयों के सशर्त समावेशन चाहता हूं (उदाहरण के लिए विभिन्न मेमोरी प्रबंधकों के बीच स्विच, डेल्फी के विभिन्न संस्करणों का समर्थन करें)। आईडीई इसे खराब कर देता है। आईडीई निर्मित डीआरआर की अनुमति के मुकाबले फॉर्म निर्माण और विनाश पर मुझे बेहतर नियंत्रण की आवश्यकता है, और इससे संबंधित कुछ वीसीएल बग के आसपास काम करने की भी आवश्यकता है। –

+0

हां, मेरे पास अभी भी डीपीआर फ़ाइल में वह पंक्ति है। – Ampere

1

मैं उन्हें हटा देता हूं & ने थोड़ी देर के लिए इस तरह से काम किया है (मैं अधिकांश रूपों के लिए चर या स्वत: उपयोग नहीं करता)।

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