मेरे पास एक ऐसा फॉर्म है जिसका उपयोग मैं कुछ सेकंड के लिए कुछ जानकारी दिखाने के लिए करता हूं। क्या फॉर्म खुद को मुक्त करने के लिए ठीक है? क्या मैं कन्स्ट्रक्टर में टाइमर शुरू कर सकता हूं, और फिर टाइमर-इवेंट में self.free को कॉल कर सकता हूं? या क्या यह संभावित रूप से परेशानी का कारण बन जाएगा?डेल्फी: क्या यह फ़ॉर्म को स्वयं मुक्त करने के लिए ठीक है?
उत्तर
इसके अतिरिक्त, एक फॉर्म के साथ आप रिलीज कॉल कर सकते हैं।
यह फ़ॉर्म में एक CM_RELEASE संदेश भेजता है। एक प्रतिक्रिया के रूप में यह मुफ्त कहते हैं। रिलीज का लाभ यह है कि फ़ॉर्म के लिए कोई संदेश नहीं छोड़ा गया है जिसके परिणामस्वरूप क्रैश हो सकता है।
मेरे पास ऑब्जेक्ट्स का पूरा सूट है जो स्वयं को मुक्त करता है, और मैंने उन पर विभिन्न परीक्षण चलाए हैं जिनमें कोई समस्या/रिसाव नहीं दिखाया गया है। एक TForm अधिक जटिल हो सकता है, लेकिन जब तक Self.Free() अंतिम कॉल किया जाता है, तो आपको सुरक्षित होना चाहिए।
(उन लोगों के लिए जो सोचते हैं कि मेरे पास क्यों ऑब्जेक्ट है जो खुद को मुक्त करते हैं; मैं उन्हें सिस्टम के चारों ओर बहुत पास करता हूं, इसलिए मैंने अपनी संदर्भ गिनती योजना द्वारा कार्यान्वित किया। जब अंतिम संदर्भ जारी किया जाता है, तो ऑब्जेक्ट खुद को मुक्त करता है)।
लेकिन Self.Free लगभग किसी भी रूप में आखिरी कॉल नहीं होगा क्योंकि एक फॉर्म लगभग हमेशा कुछ उपयोगकर्ता कार्रवाई की प्रतिक्रिया में कोड चला रहा है। इसके बजाय रिलीज का प्रयोग करें। –
संदर्भ-गणना के लिए इंटरफ़ेस का उपयोग क्यों न करें? –
आप खुद को मुक्त करने के प्रपत्र बना सकते हैं जब यह उपयोगकर्ता द्वारा या कोड से बंद कर दिया जाता है:
procedure TForm27.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TForm27.FormCreate(Sender: TObject);
begin
Timer1.Enabled := True;
end;
procedure TForm27.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False;
Close;
end;
सुनिश्चित करें कि आप आवेदन शटडाउन बैठाना निर्माता को स्वामी की आपूर्ति करते हैं और प्रपत्र पर नष्ट कर दिया नहीं है समय। स्वामी खुद को मुक्त करने से पहले फॉर्म को मुक्त कर देगा।
जितना अधिक मैं इसके बारे में सोचता हूं, उतना ही मुझे TCloseAction-idea पसंद है। हो सकता है कि मुझे रिलीज के बजाय इसका उपयोग करना चाहिए ... – Vegar
यदि केवल फॉर्मों में DefaultCloseAction गुण थे, तो पोन ईवेंट हैंडलर को निर्दिष्ट किए बिना उन्हें ऑटो-फ्री कर सकता था। –
यह बिल्कुल इंटरफेस के साथ किया जाता है।
हां, लेकिन आपको याद रखना चाहिए कि डेल्फी का टीकंपोनेंट इंटरफ़ेस के संदर्भ गिनती को ओवरराइड करता है, जो अक्सर भ्रम का कारण बनता है। –
इंटरफेस का उपयोग करते हुए, फॉर्म को स्कूप से बाहर होने पर मुक्त कर दिया जाएगा। मुझे वह नहीं चाहिए। मैं इसे तब तक जीना चाहता हूं जब तक कि यह किसी भी संदर्भ के बिना नहीं चाहता, और फिर इसे स्वयं दिखाए जाने पर स्वयं को मुक्त कर दें। – Vegar
फैबियो: मुझे यकीन है कि आप इसे ओवरराइड कर सकते हैं। वेगर: इंटरफेस संदर्भ गिना जाता है, स्कोप-प्रबंधित नहीं। – Arafangion
- 1. क्या यह 'शून्य *' मुक्त करने के लिए ठीक है?
- 2. क्या यह एक कारखाने विधि के लिए ठीक है वापस करने के लिए ठीक है?
- 3. क्या मुझे इन वस्तुओं को मुक्त करने की ज़रूरत है?
- 4. कैसे ठीक से मुक्त रिकॉर्ड है कि एक बार में डेल्फी में विभिन्न प्रकार को रोकने के लिए?
- 5. क्या डेल्फी को डिकंपाइल करने के लिए कोई प्रोग्राम है?
- 6. क्या किसी उदाहरण से विधि के रूप में क्लासमेड को कॉल करने के लिए यह खराब फ़ॉर्म है?
- 7. डेल्फी स्वयं-हटाना कार्यक्रम
- 8. क्या रिपोजिटरी लुकअप करने के लिए मॉडल बाइंडर के लिए यह ठीक है?
- 9. क्या यह स्वयं प्रारंभिक वैध है?
- 10. जब सी में सूचक मुक्त करने के लिए और कैसे पता करने के लिए अगर यह
- 11. ठीक है एक पॉइंटर जारी करने के लिए ठीक है?
- 12. क्या यह स्वयं बंद डीआईवी टैग का उपयोग करना ठीक है?
- 13. memcacheD यह ठीक है?
- 14. NoClassDefFoundError को ठीक करने के लिए दृष्टिकोण?
- 15. क्या यह ठीक है? सिंक ब्लॉक
- 16. क्या यह java.lang.Error फेंकना ठीक है?
- 17. क्या यह सी ++ 11 स्मार्ट पॉइंटर्स से प्राप्त करने के लिए ठीक है और रिश्तेदार ऑपरेटरों को ओवरराइड करता है?
- 18. ठीक है, यह काम किया। हकीकत में यह क्या है?
- 19. क्या यह संदिग्ध है या यह बिल्कुल ठीक है?
- 20. तुरंत क्या करने के लिए अनुकूलन ठीक है?
- 21. एप्लिकेशन को स्वयं को नष्ट करने के लिए कैसे?
- 22. * यह करने के लिए असाइनमेंट क्या करता है (* यह = वैल)?
- 23. डेल्फी - फॉर्म/MsgBoxes को पूर्व फ़ॉर्म के अंतर्गत जाने के लिए कैसे रोकें?
- 24. यह ठीक इस
- 25. प्रोग्रामिंग भाषा लिखने के लिए एक अच्छा संसाधन क्या है, यह संदर्भ मुक्त नहीं है?
- 26. उपयोगकर्ता नियंत्रण में फ़ॉर्म जोड़ें - क्या यह संभव है?
- 27. क्या यह बहुत सारे डेटाबेस विचारों को ठीक है?
- 28. Google Analytics - क्या यह फ़ॉर्म डेटा एकत्र कर सकता है?
- 29. क्या यह रिशेर्पर डिस्पोजेड क्लोजर चेतावनी के लिए ठीक है क्या कोई समझ है?
- 30. स्वत: संदर्भ गणना के साथ स्वयं को जारी करने के लिए नया पैटर्न क्या है?
+1, यह है, आईएमएचओ, उस मामले में करने का एकमात्र साफ तरीका – Fred
मुझे लगता है कि मैं मालिक के अतिरिक्त बीमा के रूप में स्थापित करने के संयोजन के साथ इस के लिए जाऊंगा। – Vegar