घर
Top.Mail.Ru Yandeks.Metrika
मंच: "मुख्य";
वर्तमान संग्रह: 2002.06.03;
डाउनलोड करें: [xml.tar.bz2];

नीचे

विधि इसी तरह की शाखाएँ खोजें


VetMIg   (2002-05-08 14:45) [0]

क्यों, जब मैं "फ्री" पद्धति का उपयोग करके फॉर्म को नष्ट करता हूं। इस फॉर्म के तीसरे समापन के बाद, क्या प्रोग्राम में कोई त्रुटि है?
उदाहरण:
...
रूप 1। अदृश्य: = गलत;
Form1.Free;
...



Кулюкин Олег   (2002-05-08 14:50) [1]

यह नहीं जानते कि कार्यक्रम क्या त्रुटि देता है, इसका उत्तर देना बेहद कठिन है।
सबसे अधिक संभावना है, 17 वीं पंक्ति में एक त्रुटि :))



Val   (2002-05-08 14:51) [2]

डरावनी रेखा: ओह



Alx2   (2002-05-08 15:01) [3]

FreeAndNil प्रक्रिया को नि: शुल्क विधि के बजाय आज़माएं



Johnny Smith   (2002-05-08 16:05) [4]

किस तरह की गलती?



Romkin   (2002-05-08 16:17) [5]

क्योंकि निशुल्क कॉल करके फॉर्म को बंद नहीं किया जाना चाहिए, लेकिन रिलीज को कॉल करके। और त्रुटि एवी होनी चाहिए



Val   (2002-05-08 16:34) [6]

> रोमकिन © (08.05.02 16: 17)
क्यों नहीं मुक्त, लेकिन रिलीज?



Romkin   (2002-05-08 16:40) [7]

रिलीज पर मदद देखें
तथ्य यह है कि फॉर्म में एक संदेश कतार है, और जब फ्री कहा जाता है, तो यह खाली नहीं हो सकता है। परिणाम - विंडो के हैंडल के साथ फॉर्म नष्ट हो जाता है, और फिर एप्लिकेशन संदेशों के प्रसंस्करण तक पहुंच जाता है, और नष्ट किए गए हैंडल पर संदेश भेजता है।
इस मामले में, एक एक्सेस उल्लंघन है, और तुरंत और विभिन्न स्थानों पर नहीं - अंजीर का पता लगाया जाएगा



Внук   (2002-05-08 16:44) [8]

>> रोमकिन © (08.05.02/16/40 XNUMX:XNUMX)
सैद्धांतिक रूप से, आप सही हैं, ज़ाहिर है, लेकिन व्यवहार में यह बहुत दुर्लभ है। इसके अलावा, मैं एक भयानक रहस्य खोलूंगा - मैंने अपने जीवन में कभी भी TForm.Release का उपयोग नहीं किया है - और कुछ भी नहीं :)



Val   (2002-05-08 16:45) [9]

तब हम साथ में पढ़ते हैं:
।।सभी घटना संचालकों को रिलीज का उपयोग करना चाहिए ।।
यह वह जगह है जहाँ हमें बताया गया है, प्रश्न के लेखक ने रिलीज़ का उपयोग करने के लिए फ़ॉर्म को नष्ट क्यों किया?



Внук   (2002-05-08 16:46) [10]

उफ़ ... सही ढंग से लिखने के लिए - मैंने इसका इस्तेमाल कभी नहीं किया है ...



Romkin   (2002-05-08 16:53) [11]

सौभाग्यशाली। कई कारकों पर निर्भर करता है, मेरे पास ऐसे क्लासिक एवी थे, प्रोग्रामर ने हर जगह मुफ्त लिखा था, और दो घंटे के लिए मैंने एक त्रुटि पकड़ी थी :-))



kull   (2002-05-08 18:32) [12]


> रोमकिन ©

रिलीज और क्लोज क्यों नहीं?

परास्नातक, परास्नातक ...



Malder   (2002-05-08 18:59) [13]

व्यक्तिगत रूप से, मुझे सवाल समझ में नहीं आया। "इस फॉर्म के 3 पास होने के बाद, क्या प्रोग्राम में कोई त्रुटि है?" - कुछ बकवास। "3rd फॉर्म क्लोजर के बाद" का क्या अर्थ है? तीन बार फ्री मेथड पर कॉल करने के बाद?! हां, पहले Form1.Free के बाद, फॉर्म में किसी भी कॉल के कारण त्रुटि होगी ...



paul_shmakov   (2002-05-08 20:25) [14]

रोमकिन सही है और यहां बहस करने के लिए कुछ भी नहीं है। मदद को ध्यान से पढ़ें:

प्रपत्र को नष्ट कर देता है और इसकी संबंधित मेमोरी को मुक्त कर देता है।

प्रक्रिया जारी;

विवरण

फ़ॉर्म को नष्ट करने और इसकी संबंधित मेमोरी को मुक्त करने के लिए रिलीज़ का उपयोग करें।

रिलीज तब तक फॉर्म को नष्ट नहीं करती है जब तक फॉर्म के सभी ईवेंट हैंडलर और फॉर्म पर घटकों के ईवेंट हैंडलर्स ने निष्पादन समाप्त कर दिया हो। फॉर्म के किसी भी घटना संचालकों को रिलीज का उपयोग करना चाहिए। ऐसा करने में विफल रहने से एक पहुंच उल्लंघन हो सकता है।


ठीक है, तथ्य यह है कि कोई और फ्री ठीक काम करता है, इसलिए शायद कुछ फ्रीम भी ठीक काम करेगा ... थोड़ी देर के लिए।



VetMIg   (2002-05-14 14:25) [15]

बेशक शांत, लेकिन मैंने एक सवाल देखा: इसका क्या मतलब है "3 डी फॉर्म बंद होने के बाद"? । इसलिए ... पहले दो बार फॉर्म सामान्य रूप से बंद हो जाता है और कोई त्रुटि उत्पन्न नहीं करता है। और तीसरी बार यह एक त्रुटि प्रदर्शित करता है।



Andrey007   (2002-05-14 15:02) [16]

अगर फॉर्म 1 <> शून्य है तो फ्रीआंडनील (फॉर्म 1);

FreeAndNil प्रक्रिया

एक वस्तु संदर्भ को संदर्भित करता है और संदर्भ को शून्य से बदल देता है।

प्रक्रिया FreeAndNil (var Obj);

विवरण

FreeAndNil का उपयोग यह सुनिश्चित करने के लिए करें कि आपके द्वारा संदर्भित ऑब्जेक्ट को मुक्त करने के बाद एक चर शून्य है। किसी भी चर को पास करें जो ओब्ज पैरामीटर के रूप में एक ऑब्जेक्ट का प्रतिनिधित्व करता है।

चेतावनी: ओब्ज के लिए एक मान पास न करें यदि यह टोबजेक्ट या उसके किसी वंशज का उदाहरण नहीं है।



kull   (2002-05-14 15:06) [17]


> paul_shmakov © (08.05.02 20: 25)
> रोमकिन सही है और यहां बहस करने के लिए कुछ भी नहीं है। मदद को ध्यान से पढ़ें:

इस मदद के लिए एक नोट, भी, ध्यान से पढ़ें?

नोट्स: कॉल करने वाले को तुरंत रिटर्न जारी करें। यह लौटने से पहले फॉर्म के मुक्त होने का इंतजार नहीं करता है।

लेकिन बंद होने तक इंतजार करता है।



NailS   (2002-05-14 15:10) [18]

के लिए दोहरा रहा है कुल्लुकिन ओलेग, जॉनी स्मिथ, फिर भी पूछने की हिम्मत

त्रुटि क्या है जो फार्म को देखते हुए जारी कर रहा है?

और कोड की लाइनें कहां हैं
रूप 1। अदृश्य: = गलत; Form1.Free;



Внук   (2002-05-14 15:17) [19]

जब तक कोड नहीं होता है, तब तक केवल एक ही जवाब नहीं होगा, IMHO।



Anatoly Podgoretsky   (2002-05-14 15:23) [20]

VetMIg © (14.05.02/14/25 XNUMX:XNUMX बजे)
खैर, रहस्य प्रत्यक्ष है।
चलो, तो आप हमें त्रुटि संदेश सहित विवरण बताएं, और हम आपकी सहायता करते हैं। आप चुप हैं और हम चुप हैं।



Кулюкин Олег   (2002-05-14 15:41) [21]

2 अनातोली पॉडगॉर्त्स्की © (14.05.02 15: 23)
शायद यह एक व्यापार रहस्य है? :)



VetMIg   (2002-05-15 02:08) [22]

ठीक है ... पहले, कोड की एक पंक्ति, एक उदाहरण ...

About_Form को बंद करने की आवश्यकता है।

प्रक्रिया TAbout_Form.Image3Click (प्रेषक: TObject);
शुरू करना
PlaySound ("sound \ menu_back.wav", 0, Snd_FileName);
About_Form.Vouble: = गलत;
About_Form.Free;
Main_Form.Vouble: = सच;
Main_Form.SetFocus;
अंत;

अब त्रुटि:

Project Project.exe ने संदेश "मॉड्यूल Project1.exe में 0043F419 पर पहुंच उल्लंघन" संदेश के साथ अपवाद वर्ग इओवाइस उल्लंघन को उठाया। पता 1D00EBD पढ़ें

जो सभी से अनुरोध किया गया था।



Fay   (2002-05-15 02:20) [23]

ठंडा !!!



Slym   (2002-05-15 06:51) [24]

आप फॉर्म को छोड़ देते हैं, लेकिन उसकी विधि में आप जारी रखते हैं -
Main_Form.Vouble: = सच;
Main_Form.SetFocus;
अंत में फ्राइज़ डालने की कोशिश करें :)



Alx2   (2002-05-15 08:07) [25]

अपने आप को मुक्त करना एक विकल्प नहीं है। रिलीज?



Мальфет   (2002-05-15 08:54) [26]

VetMIg, मुझे क्षमा करें, लेकिन आपको शैली पर काम करने की आवश्यकता है ...

सब्ज़ के अनुसार: किसी वस्तु को स्वयं वस्तु से मुक्त करने के लिए प्रक्रियाओं का उपयोग करना बिल्कुल शक्तिहीन है।



KSergey   (2002-05-15 09:40) [27]

उत्तर दिया गया सब बिल्कुल सच है (जैसे कि किसी को उस पर संदेह हो;)
मैं ऐसा करने की सलाह दूंगा:

प्रक्रिया TAbout_Form.Image3Click (प्रेषक: TObject); शुरू PlaySound ("sound \ menu_back.wav", 0, Snd_FileName); बंद करे // लेकिन लक्ष्य अगले है। लाइनों की हवा स्पष्ट नहीं है: // और क्या, मेनफॉर्म शो के समय छिपा हुआ था? // किस लिए?! खैर, हालांकि, एक आवश्यकता है - आप इन पंक्तियों को छोड़ सकते हैं // Main_Form.Vouble: = सच; // Main_Form.SetFocus; समाप्त; // और जारी रखने के लिए सुनिश्चित करें: फॉर्म के बारे में क्लिक करें: प्रक्रिया TAbout_Form.FormCloseSender: TObject; var क्रिया: TCloseAction); शुरू क्रिया: = caFree; समाप्त;

मेरी अवधारणा में, यह सब बहुत सही ढंग से काम करेगा। या कोई आपत्ति है?

हालांकि, वास्तव में, मैंने यह सब गलत किया होगा। कहीं, जैसा कि मैं इसे समझता हूं, के बारे में रूप बनाया जा रहा है? यहाँ इस जगह में मैं ऐसा करूँगा (मान लीजिए कि यह मुख्य रूप में एक बटन क्लिक है):

// ध्यान: यहाँ चर का मान About_Form असाइन नहीं किया गया है // लेकिन क्या यह वास्तव में आवश्यक है?! आमतौर पर आप इसके बिना कर सकते हैं। TAbout_Form.Create (स्व) के साथ करें प्रयत्न ShowModal; आखिरकार नि: शुल्क समाप्त;

फिर चित्र में क्लिक हैंडलर को रूपांतरित किया जाता है

प्रक्रिया TAbout_Form.Image3Click (प्रेषक: TObject); शुरू PlaySound ("sound \ menu_back.wav", 0, Snd_FileName); बंद करे // ठीक है, अगर आपको वास्तव में ज़रूरत है - आप दो पटरियों को अनसुना कर सकते हैं। पंक्तियां // Main_Form.Vouble: = सच; // Main_Form.SetFocus; समाप्त;

यह बात है!
वैसे, उपरोक्त निर्माण में, जिसका उपयोग मैं हर जगह करता हूं, मैंने कभी भी रिलीज का उपयोग नहीं किया। अब तक भाग्यशाली .. शायद इसके लिए एक स्पष्टीकरण है, लेकिन मैं उसे नहीं जानता। क्या कोई आत्मज्ञान कर सकता है? (चूँकि ऐसा लगता है कि रिलीज़ के पक्ष में तर्क काफी हद तक उचित लग रहे हैं, लेकिन शायद इस डिज़ाइन में यह मौलिक रूप से महत्वपूर्ण नहीं रह गया है, क्योंकि ShowModal के समय सभी संदेश पहले ही पास हो चुके हैं?)



koks   (2002-05-15 09:41) [28]

प्रक्रिया TAbout_Form.Image3Click (प्रेषक: TObject);
शुरू करना
PlaySound ("sound \ menu_back.wav", 0, Snd_FileName);
बंद;
Main_Form.Vouble: = सच;
Main_Form.SetFocus;
अंत;

प्रक्रिया TAbout_Form.About_FormOnClose (प्रेषक: Tobject; वर् क्रिया: TClose.ction);
शुरू करना
क्रिया: = caFree;
अंत;

यदि आपके पास About_Form है - मोडल नहीं ...

हाँ, वैसे, यह तब दिलचस्प होगा, जब एक्शन सेट करना: = caFree, यह फ़ॉर्म निशुल्क या Realease विधि द्वारा हटाया गया हो ...



KSergey   (2002-05-15 09:42) [29]

ब्रेस एक बाहर गिर गया:

प्रक्रिया TAbout_Form.FormClose (प्रेषक: Tobject; var क्रिया: TCloseAction);



KSergey   (2002-05-15 09:44) [30]

2 कोक

और अगर मोडल - तो क्या? किसे पड़ी है?



leshy   (2002-05-15 09:49) [31]

क्यों में TAbout_Form.OnClose आप अभी नहीं डाल सकते क्रिया: = caFree, और अब इसके बारे में मत सोचो। आप इसे वहां डाल सकते हैं About_Form: = nilइतना के रूप में कहीं और करने के लिए नहीं। वहाँ, वैसे, आप कर सकते हैं Main_Form.Showके बजाय दृष्टिगोचर и फ़ोकस-सेट.
यद्यपि, पूरी तरह से सही होने के लिए, प्रपत्र चर को रीसेट करना बेहतर है BeforeDestruction.
तदनुसार, एक फॉर्म को बंद करना सरल है। समापन.



Alex M.A.   (2002-05-15 09:54) [32]

शायद मैंने लेखक के इरादे को गलत समझा है, लेकिन निम्नलिखित निर्माणों का उपयोग करने से त्रुटियां नहीं होती हैं,
और मेरी राय में आप वांछित परिणाम प्राप्त करने की अनुमति देता है।

प्रक्रिया TForm1.AboutMenuClick (प्रेषक: TObject);
शुरू करना
AboutBox: = TAboutBox.Create (एप्लिकेशन);
AboutBox.ShowModal;
अंत;

प्रक्रिया TAboutBox.FormClose (प्रेषक: Tobject; var क्रिया: TCloseAction);
शुरू करना
क्रिया: = caFree;
अंत;


caFree - फॉर्म बंद है और फॉर्म के लिए सभी आवंटित मेमोरी को मुक्त कर दिया गया है।



Zemal   (2002-05-15 10:20) [33]

VetMlg, अच्छा दिया आपने! जब आप कोड व्यावहारिक विचार लिखते हैं, तो कल्पना करें कि कार्यक्रम कैसे काम करेगा, कल्पना से वस्तुओं की कल्पना करें और सबकुछ ठीक हो जाएगा। और आपके मामले में, फार्म के विनाश के बाद, अगर वे नहीं हैं तो इसकी घटनाएं कैसे काम करेंगी ??? यदि जिस बटन के निर्देशों को निष्पादित किया जाता है उस स्थिति में बटन पहले ही नष्ट हो गया है?
और वैसे, कई मामलों में नि: शुल्क विधि हस्तक्षेप के बिना काम करती है, यदि आप स्वयं "थ्रेड" के थ्रेड के साथ प्रपत्र विंडो पर एक संदेश नहीं भेजते हैं, जो कम प्राथमिकता के कारण बहुत धीमा हो जाता है और प्रपत्र के अस्तित्व की जांच नहीं करता है और इसे संदेश भेजता है। इसे डबिंग कहा जाता है। प्रक्रियाओं और कार्यों को इस तरह से लिखें कि आपको यह न सोचना पड़े कि फ्री या रिलीज़ को किस पद्धति से कॉल करें। :)) बस प्रोग्रामिंग में अच्छे फॉर्म के नियमों का पालन करें - उन्हें एक्सेस करने से पहले सभी वीसीएल घटकों को जांचें (आलसी मत बनो), अगर कोई संभावना है कि वे वहां नहीं हैं। :)))
और फिर भी, VetMlg, आपको क्या लगता है? क्या वस्तु "खुद को लटकाती है", फिर "कब्र से उठो" और "रिश्तेदारों को अलविदा कहो"? यदि फ़ॉर्म स्वयं को नष्ट कर देता है, तो सुनिश्चित करें कि: पहले, इस फॉर्म की कक्षा में सभी ऑब्जेक्ट नष्ट हो जाते हैं (यदि आप खुद कुछ बनाते हैं), तो बात यह है कि यदि आप फॉर्म क्लास में कोई ऑब्जेक्ट बनाते हैं, तो आपको इसे नष्ट करना होगा, एप्लिकेशन स्वयं ऐसी वस्तुओं को नष्ट नहीं करेगा और वे स्मृति में लटकाए रहेंगे, और आप अब उनके साथ कुछ भी नहीं कर सकते, क्योंकि आप इन ऑब्जेक्ट्स को पॉइंटर खो देते हैं, दूसरी बात, आवेदन "सोचने" के तरीके को सोचने की कोशिश करें, जब तक आप सीखते हैं कि यह कैसे काम करता है, यह कल्पना करना है - कुछ भी आपके पास नहीं आएगा (इस अर्थ में: आप "फिटिंग रूम" प्रोग्रामर होंगे - जो संभव हो, उदाहरण के लिए देख रहे हैं और इन टुकड़ों का एक अनुप्रयोग बनाता है, उन्हें थोड़ा मोड़ देता है, और फिर आश्चर्य होता है कि त्रुटियां कहां से हैं और असहाय रूप से अपने हाथों को सिकोड़ते हैं)।
मेरी सलाह: मूल बातें, के साथ शुरू करें ऑब्जेक्ट मॉडल के साथ। इसे समझने के बिना, तरीकों आदि के अध्ययन के लिए आगे न बढ़ें, क्योंकि यह बेकार है। वर्ग दर्शन (वंशानुक्रम आदि) की अवधारणा के बिना, आपकी नाक में दम करने के लिए और कुछ नहीं है। यह अफ़सोस की बात है कि कुछ पुस्तकों ने इसे अच्छी तरह से वर्णित किया है ... वे तुरंत "21 दिनों" में सीखना शुरू करते हैं ... और प्रश्न उन मंचों पर शुरू होते हैं जो मूल बातें (वस्तुओं के जीवनकाल, गुंजाइश आदि) की पूरी अज्ञानता दिखाते हैं। "21 दिनों" के लिए तैयार किए गए प्रोग्रामर को देखकर दुख होता है, जो तब "नथुने का उपयोग करना जानते हैं, जैसे सवालों के साथ मंचों पर बमबारी करते हैं, लेकिन मैं साँस नहीं ले सकता! क्यों?" ... हाँ! पाठ्यपुस्तकों में चढ़ो !!!
धिक्कार है ... गड़बड़ ... सॉरी दोस्तो! मुझे आज पर्याप्त नींद नहीं मिली! :) बॉस्का टूट रहा है, लेकिन ट्रिगर इंतज़ार नहीं कर रहा है ... :)
मैं माफी माँगता हूँ अगर मैंने एक बकवास लिखी थी जो मैंने अपने सिर में लिखी थी :)) ... मैं इसे फिर से पढ़ना भी नहीं चाहता, यह बहुत कम सही है :)) जैसे: संस्करण "जैसा है"। घोड़ा।
:)))



KSergey   (2002-05-15 10:42) [34]

2 ज़ेमल
दार्शनिक रूप से चालाक से - यह सोने के लिए बेहतर होगा। यह हर किसी के लिए अधिक फायदेमंद होगा - कम लेने के लिए



KSergey   (2002-05-15 10:42) [35]

2 ज़ेमल
दार्शनिक रूप से चालाक से - यह सोने के लिए बेहतर होगा। यह हर किसी के लिए अधिक फायदेमंद होगा - कम लेने के लिए



KilkennyCat   (2002-05-15 11:00) [36]

और इसलिए मैं:

मुख्य से किसी भी रूप में कॉल करते समय:
शुरू करना
के बारे में: = TAbout.Create (स्व);
कोशिश
About.ShowModal;
Main.hide;
आखिरकार
About.Free;
Main.Show;
अंत;
अंत;

बेशक, इस फॉर्म को परियोजना में नहीं बनाया जाना चाहिए (इसे उपलब्ध प्रपत्र अनुभाग में फेंक दें)

अबाउट फॉर्म को बंद करें
modalresult: = mrCancel;
हालांकि आवश्यक नहीं है, अगर आप भविष्य में इसे नहीं संभालते हैं।



KilkennyCat   (2002-05-15 11:16) [37]

एक हज़ार माफी, मैं शो और बैक से बहुत दूर चला गया :)
बेशक, दिखाई देने वाले नोट दिखाई दे रहे हैं।



Producer   (2002-05-15 13:47) [38]

क्या एक साधारण प्रश्न के आसपास बहुत शोर है? मुझे लगता है कि VetMlg एक "बख्तरबंद ट्रेन" होने से बहुत दूर है और लंबे समय से "परेशानी में" है।



KSergey   (2002-05-15 16:11) [39]

२ निर्माता
और अगर बहुत कुछ है - तो इसे क्यों बढ़ाएं?

और फिर, विषय दिलचस्प निकला, कुछ। बेहतर अंक मांगे गए, जिससे आप, निर्माता उत्साहित हो गए।

इसके अलावा, किसी ने अभी तक जवाब नहीं दिया है: क्या इस तरह के डिजाइन में मुफ्त का उपयोग करना सही है

TAbout_Form.Create (स्व) के साथ करें
कोशिश
ShowModal;
आखिरकार
मुक्त;
अंत;

या क्या यह संभव त्रुटियों को जन्म देगा?
वे ऐसा चाहते हैं जैसे यह मुझे लगता है: ठीक है, मैंने फॉर्म को नष्ट कर दिया, इसके पीछे खिड़की को नष्ट कर दिया गया, सिस्टम के लिए हैंडल गायब हो गया (प्रासंगिक नहीं), लेकिन संदेश बने रहे। तो क्या? उन्हें नजरअंदाज कर दिया गया है। यदि आप एक संदेश भेजते हैं, तो ओफ्फोनेरी हैंडल के साथ - क्या यह संभव है कि एवी विंडोज को फेंक दिया जाएगा? किसी तरह मुझे संदेह है कि ... (लेकिन आलस्य की जांच करें, मैं मानता हूं)

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

// 1. अपने आप को CM_RELEASE भेजें, पोस्ट "ओम के साथ - इसलिए वास्तविक विनाश से पहले तुरंत इस प्रक्रिया से बाहर निकलें। प्रक्रिया TCustomForm.Release; शुरू पोस्टमासेज (हैंडल, CM_RELEASE, 0, 0); समाप्त; // 2. और CM_RELEASE के लिए हमारी प्रतिक्रिया कैसी है? प्रक्रिया TCustomForm.CMRelease; शुरू नि: शुल्क समाप्त;

ओह, अपने आप को निफ़ागा! ऑब्जेक्ट बस नष्ट हो गया है, और नि: शुल्क है, और शेष संदेशों की परवाह किए बिना, शायद! माना जाता है कि अंत में रेलैस द्वारा संसाधित संदेशों के बारे में - यह कल्पना है, हालांकि।
हां, और रिलीज का बहुत ही उद्देश्य / आवेदन मेरे लिए पूरी तरह से स्पष्ट नहीं है: जैसे "आपके अवकाश पर पतन।"

वैसे, caFree की प्रतिक्रिया - जिसे रिलीज़ कहा जाता है - बस इतना ही।

जाहिरा तौर पर, Relase का उपयोग (साथ ही इसका उद्देश्य) फॉर्म की क्षमता में है कि वह खुद को पूरी तरह से नष्ट कर दे। हालांकि, ऐसा लगता है कि फ्री में कहीं भी कॉल किया जा सकता है, यह महत्वपूर्ण है कि यह विधि का अंतिम विवरण है। ठीक है, और शायद सभी हैंडलर में ऐसा नहीं किया जा सकता है - शायद, समस्या उत्पन्न हो सकती है यदि आप फ्रीचैक को तुरंत कॉल करते हैं;)

अगर मैंने किसी को थकाया तो मैं माफी मांगता हूं। मुझे रचनात्मक आलोचना करने में खुशी होगी, अगर कुछ मुझे समझ में नहीं आता है।



Fantos   (2002-05-16 11:52) [40]

मुझे ध्यान दें कि मैंने अपने स्वयं के "रेक" पर मुफ़्त या आराम का उपयोग करने में बड़ा अंतर महसूस किया। और वे निम्नलिखित में शामिल थे (रेक):
- कार्यक्रम DLL से जुड़ा हुआ है (गतिशील रूप से, एक अलग थ्रेड में) इसके साथ एक फॉर्म कॉल के साथ (मोडल नहीं!)। यह मॉड्यूल COM पोर्ट के माध्यम से उपकरणों के साथ काम करता है ... इसलिए, अगर DLL से इंटरफ़ेस प्रक्रिया में (क्या आप समझते हैं कि मेरा क्या मतलब है?), फ़ॉर्म को मुफ़्त के माध्यम से हटा दिया गया था, तो मुख्य कार्यक्रम के लिए या बाद में निष्पादित किया जाता है - अक्सर और हमेशा एक ए वी त्रुटि डंप नहीं किया! इसका कारण मैसेज कतार हैंडलर का प्रतिबंधात्मक ABSENCE है ... फॉर्म पहले से ही DELETED है!
लेकिन जब FREE को RELEASE से रिप्लेस किया गया, तो सब कुछ ठीक और करीब आने लगा ...
यहां आपको अंतर है, जैसा कि वे कहते हैं - "उंगलियों पर" ...

इसलिए, "एक नुस्खा लिखने" के लिए, आपको पहले हटाए गए फ़ॉर्मों के पूरे गुच्छा और मुख्य मॉड्यूल (या फ़ॉर्म, यदि आप चाहें) पर "सोचना" चाहिए ...



Tonie   (2002-05-16 12:55) [41]

केसरजी को © (15.05.02/16/11 XNUMX:XNUMX)

> पोस्टमैसेज (हैंडल, सीएम_रेलवे, 0, 0);

खैर, यह बात है, CM_RELEASE संदेश पहले से ही कतार में मौजूद लोगों के बाद रखा जाएगा, इसलिए TCustomForm.CMRelease शेष सभी संदेशों को संसाधित करने के बाद होगा

वैसे, क्लोज़ कॉल रिलीज़, इसलिए C के साथ मिलकर उपयोग करना ... क्रिया: = caFree काफी सही है

प्रक्रिया TCustomForm.Close; वर CloseAction: TCloseAction; शुरू अगर FFormState में fsModal मोदलकल्त: = मर्केलेल अन्य अगर बंद हुआ तो शुरू अगर FormStyle = fsMDIChild हो तो अगर बॉर्डरआईन्स में बायोमिनाइज़ करें तो क्लोज़एशन: = अन्य को शामिल करें क्लोजएशन: = caNone अन्य क्लोज़एशन: = caHide; DoClose (CloseAction); अगर CloseAction <> caNone तो यदि Application.MainForm = Self तो Application.Terminate और यदि CloseAction = caHide तो छिपाएँ और अगर CloseAction = caMinimize तो WindowState: = wsMinimized अन्य रिलीज; अंत; अंत;



VetMIg   (2002-05-21 14:34) [42]

धन्यवाद दोस्तों ... मैंने काफी पढ़ा है। मैं आपकी सलाह जरूर आजमाऊंगा। और फिर से धन्यवाद :-))))))



पन्ने: 1 2 पूरी शाखा

मंच: "मुख्य";
वर्तमान संग्रह: 2002.06.03;
डाउनलोड करें: [xml.tar.bz2];

ऊपर





मेमोरी: 0.72 एमबी
समय: 0.036 c
1-7014
Zak
2002-05-23 13:01
2002.06.03
फ़ोल्डर फ़ोल्डर पथ!


4-7271
भगवान
2002-03-29 14:11
2002.06.03
WM_APPCOMMAND


7-7239
प्रोफेसर!
2002-03-10 14:09
2002.06.03
स्क्रीनसेवर!


1-6959
नोवाक
2002-05-22 17:08
2002.06.03
StringGrid।


8-7127
फोबोस
2002-01-11 20:50
2002.06.03
मुझे स्रोत ग्राफिक्स संपादक कहां मिल सकता है?





अफ्रीकी अल्बानियन अरबी भाषा अर्मेनियाई आज़रबाइजानी बस्क बेलारूसी बल्गेरियाई कैटलन सरलीकृत चीनी) चीनी पारंपरिक) क्रोएशियाई चेक डेनिश डच अंग्रेज़ी एस्तोनियावासी फिलिपिनो फिनिश फ्रेंच
गैलिशियन् जॉर्जियाई जर्मन यूनानी हाईटियन यहूदी हिंदी हंगरी आइसलैंड का इन्डोनेशियाई आयरिश इतालवी जापानी कोरियाई लात्वीयावासी लिथुआनियाई मेसीडोनियन मलायी मोलतिज़ नार्वेजियन
फ़ारसी पोलिश पुर्तगाली रोमानियाई रूसी सर्बियाई स्लोवाक स्लोवेनियाई स्पेनिश स्वाहिली स्वीडिश थाई तुर्की यूक्रेनी उर्दू वियतनामी वेल्श यहूदी बंगाली बोस्नियाई
सिबुआनो एस्पेरांतो गुजराती हौसा हमोंग ईग्बो जावानीस कन्नड़ खमेर लाओ लैटिन माओरी मराठी मंगोलियन नेपाली पंजाबी सोमाली तामिल तेलुगु योरूबा
ज़ुलु
Английский Французский Немецкий Итальянский Португальский Русский Испанский