टिप्पणी का जवाब क्यों फ्रेम का उपयोग करने के लिए एक कारण प्रदान करने के लिए: डिजाइन समय के साथ
मैं तख्ते पर विचार करेंगे जीयूआई के ब्लॉक का निर्माण हो सकता है, मौजूदा घटकों का संयोजन अधिक उन्नत घटकों के लिए। डेल्फी से पहले 5 व्यक्ति ने TCustomPanel
बच्चे के नियंत्रण के साथ वंशज का उपयोग किया होगा और इसे एक नए घटक के रूप में पंजीकृत किया है, जिसे एक फॉर्म पर छोड़ने के लिए तैयार किया गया है। फ्रेम्स कम परेशानी के साथ एक ही चीज़ के लिए अनुमति देते हैं।
वे आपको वास्तव में आवश्यक कार्यक्षमता को विकसित करने पर ध्यान केंद्रित करने की अनुमति देते हैं, और कुछ भी नहीं। ठीक हो गया है, फिर आप उन्हें टैब कंट्रोल शीट में, मोडल या मॉडेलिस डायलॉग में, एमडीआई बाल फ्रेम में और मानक फ्रेम में एम्बेड कर सकते हैं। आप उनमें से कई को एक रूप में भी जोड़ सकते हैं - कुछ ऐसा संभवतः एम्बेडेड रूपों के साथ नहीं करेगा। मुद्दा यह है कि अधिकतम पुन: प्रयोज्यता के लिए एक स्तरित दृष्टिकोण अक्सर आवश्यक होता है, और फ्रेम उसमें सहायता करते हैं।
एक फ्रेम चलने से एम्बेड करने के लिए उपयुक्त है। कैप्शन बार और सीमा दिखाने के लिए एक फॉर्म को अनुकूलित नहीं किया जाना चाहिए, आमतौर पर CreateParams()
ओवरराइड करेगा और तदनुसार विंडो शैली समायोजित करेगा। इंस्पेक्टर में बहुत अधिक फॉर्म गुण हैं जो सिर्फ एक एम्बेडेड फॉर्म के लिए समझ में नहीं आता है। आईएमएचओ को सबसे बुनियादी और जेनेरिक इकाई का उपयोग करना चाहिए जो पर्याप्त है। एंबोडिंग के लिए एक कंट्रोल कंटेनर से सिर्फ एक फॉर्म बहुत अधिक है।
ओटीओएच मुझे किसी फ्रेम को एम्बेड करने वाले किसी भी फ्रेम को एम्बेड करने के किसी भी नुकसान की जानकारी नहीं है।
संपादित करें:
OnCreate
या OnShow
फ्रेम की जरूरत नहीं है कि इस तरह की घटनाओं के बारे में एक टिप्पणी नहीं है। असल में, मैं फ्रेम के एक और लाभ पर विचार करता हूं, क्योंकि ईवेंट हैंडलर के पास पैरामीटर नहीं होते हैं, इसलिए बहुत सारी चीजें फॉर्म में हार्ड-कोडित होती हैं, जरूरी है।
प्रति उपयोगकर्ता सेटिंग्स के मामले पर विचार करें: OnCreate
में अधिक जानकारी उपलब्ध नहीं है, इसलिए एक अनिवार्य रूप से आईएनआई फ़ाइल अनुभाग के लिए निरंतर या फॉर्म का नाम उपयोग करके समाप्त होता है, जिससे इसे पुन: उपयोग करना बहुत कठिन या असंभव हो जाता है फॉर्म या इसके कई उदाहरण बनाने के लिए। दूसरी ओर फ्रेम के साथ एक विधि LoadSettings
ऐसा करने का स्पष्ट तरीका है, और यह आवश्यक पैरामीटर ले जा सकता है। इस तरह नियंत्रण को एम्बेडेड फ्रेम/फॉर्म के कंटेनर में जहां से संबंधित है, पर वापस कर दिया जाता है। पुन: प्रयोज्यता केवल तभी संभव है जब व्यवहार को बाहर से समायोजित किया जा सके।
निहित वस्तुओं के लिए जो घटक नहीं हैं और जीवन भर में प्रबंधित होने की आवश्यकता है, उदाहरण के लिए AfterConstruction
और BeforeDestruction
हैं।
प्रदान करें ** किसी भी ** कारण है कि बनाने के द्वारा एक हाथ दे सकता है एक एम्बेडेड फॉर्म एक फ्रेम से बेहतर समाधान होगा। – mghie
mghie, मैं आपके साथ बहस नहीं कर रहा हूं, हालांकि - कृपया कोई कारण प्रदान करें ** क्यों नहीं **;) मुझे वास्तव में यह जानना अच्छा लगेगा कि कई दस्तावेज़ टैबबंद इंटरफ़ेस के लिए फ़्रेम बेहतर क्यों हैं? – migajek
बिल्कुल मेरा विचार: एम्बेडेड रूपों के लिए कौन जाएगा यदि वह इसके बजाय फ्रेम का उपयोग कर सकता है? फ्रेम्स बहुत कम परेशानी हैं। और यहां तक कि यदि आपको इसे बाद में एक रूप के रूप में चाहिए, तो आप केवल एक खाली फॉर्म विज्ञापन बना सकते हैं जो फ्रेम को align = alClient के साथ जोड़ता है। – dummzeuch