2009-11-20 11 views
5

मैं अपना खुद का घटक बनाने की तलाश में हूं और मुझे पता नहीं है कि कहां से शुरू करना है। मेरे पास कुछ डेल्फी किताबें हैं लेकिन वे पुराने और पुराने हैं, और मुझे ऐसा करने में मदद करने के लिए ट्यूटोरियल/किताबों पर कुछ सिफारिशों की तलाश है। घटक बहुत सरल होगा, मूल रूप से 2 लेबल और एक छवि। मुझे इन्हें सैकड़ों में एक सरणी में चाहिए, इसलिए मैंने सोचा कि एक घटक सबसे अच्छा मार्ग होगा। पाठ चौड़ाई आदि के आधार पर समायोजित करेगा, और कुछ माउसओवर घटनाएं होंगी। तो मूल रूप से, मैं कहां से शुरू करूं?घटक बनाने के दौरान मुझे कहां से शुरू करना चाहिए?

मैं डेल्फी 200 का उपयोग कर रहा हूं, यह एक Win32 ऐप होगा।

धन्यवाद!

उत्तर

1

this article पर एक नज़र डालें, जो बताता है कि मौजूदा घटकों के समूह से बने नए घटकों को कैसे बनाया जाए।

+0

लिंक का पालन नहीं किया था, लेकिन क्या यह वर्णन करता है कि मेरा उत्तर क्या करता है? :-) –

5

जहां तक ​​मुझे पता है, Delphi Component Design, डैनी थोर्पे द्वारा, इस विषय पर अभी भी सबसे अच्छी किताब है। पिछले 15 वर्षों में घटक डिजाइन में काफी बदलाव नहीं आया है, इसलिए जो भी किताबें आपके पास हैं, उतनी पुरानी नहीं हैं जितनी आप सोचते हैं। पुराने संदर्भों को पढ़ने के दौरान ध्यान में रखने के लिए तीन चीजें हैं:

  1. कुछ इकाइयों के नाम बदल गए हैं। उदाहरण के लिए, अब कोई संदेश नहीं है। यह इसके बजाय designide है।

  2. डिज़ाइन-टाइम कोड अब रन-टाइम कोड से सख्ती से अलग किया गया है। इसका मतलब है कि आप अपने घटक की इकाई में Designide का उपयोग नहीं कर सकते हैं, अन्यथा आपको रन-टाइम पैकेज का उपयोग करने से रोक दिया गया है। पुराने डेल्फी संस्करणों में यह तकनीकी प्रतिबंध नहीं था (हालांकि यह हमेशा एक कानूनी प्रतिबंध रहा है), इसलिए आपको पुराने कोड उदाहरणों को थोड़ा सा बदलने की आवश्यकता हो सकती है।

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

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

+0

@Rob: अच्छी सिफारिश।रे कोनोपा की पुस्तक "डेवलपिंग कस्टम डेल्फी घटक" भी अच्छी थी; मेरे पास एक यूआरएल नहीं है, और यहां से अमेज़ॅन की जांच नहीं कर सकता (प्रॉक्सी मुद्दा)। आईआईआरसी, किसी ने उल्लेख किया कि वह पीडीएफ या लुलु के माध्यम से इसे फिर से जारी करने पर विचार कर रहा था ... –

+0

@Rob: यदि आप जानते हैं कि मैं कहां खरीद सकता हूं तो मैं बहुत आभारी हूं। मैंने @ अमेज़ॅन की कोशिश की, लेकिन कोई भाग्य नहीं। तो कोई भी? – Mihaela

+0

मिहेला, मेरे उत्तर का लिंक अमेज़ॅन जाता है, और यह कहता है कि सात उपयोग की गई प्रतियां हैं। यदि आप इसे वहां नहीं प्राप्त कर सकते हैं, तो अन्य प्रयुक्त पुस्तक विक्रेताओं को आजमाएं। –

3

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

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

+0

+1 एक बहुत आसान समाधान के लिए, और एक मैं भूल गया। – skamradt

6

आप रे कोनोपा की पुस्तक देव को ऑर्डर कर सकते हैं। 25 $ के लिए Custom Delphi 3 Components - PDF। यह विषय पर एक विशेष पुस्तक है और शुरुआत के लिए भी बहुत अच्छी है।

विकासशील घटकों के पीछे मुख्य सिद्धांतों है:

  1. चाहे घटक दृश्य है या नहीं (उस पर पेंट करने के लिए एक कैनवास की आवश्यकता है)

  2. यह एक खिड़की संभाल नहीं की आवश्यकता है या (दृश्य या गैर-दृश्य)

एक बार जब आप उन प्रश्नों का उत्तर देते हैं तो आप उदाहरण के लिए डेल्फी के स्रोत कोड को देख सकते हैं।

+0

इसके लिए +1 - यह एक महान किताब है। – robsoft

+0

+1 विषय पर मिली सबसे अच्छी किताब। शीर्षक में डेल्फी 3 को डराने की अनुमति न दें, यह अभी भी डेल्फी के किसी भी संस्करण से बहुत ही विश्वसनीय है। उम्मीद है कि किसी दिन रे को इसे अपडेट करने का समय मिलेगा। –

1

अपनी पुस्तकों के बारे में चिंता न करें।

पुराने दिनों से बस सब कुछ ठीक काम करता है और आमतौर पर नाम विवादों या 200 संस्करण में यूनिकोड के अतिरिक्त होने के कारण क्या नहीं होता है।

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

0

अपनी पुरानी किताबों के बारे में चिंता न करें! v3 के बाद से, डेल्फी ज्यादा नहीं बदला है। यही कारण है कि डी 3 के साथ संकलित अधिकांश कार्यक्रम अभी भी डी 7 या यहां तक ​​कि नए संस्करणों में संकलित हैं। और यदि यह संकलित नहीं होता है, तो शायद आपको यहां या फिर एक पंक्ति या दो को बदलने की जरूरत है।

मैं आपको इंटरनेट पर अन्य बहुत ही सरल घटकों को खोजने की सलाह दूंगा और देखें कि उन्हें कैसे बनाया जाता है। फिर अपना खुद का बनाओ और इसे यहां पोस्ट करें। अन्य को इसे देखने दें और सुधार या स्पॉट बग का सुझाव दें।

अपने नियंत्रण के डिजाइन के बारे में:

1) हो सकता है आप उन दोनों लेबल की जरूरत नहीं है। आप सीधे छवि पर पाठ पेंट कर सकते हैं। यदि आपके पास बहुत से घटक हैं, जैसा कि आप कहते हैं, तो आप थोड़ी सी स्मृति बचा सकते हैं।

2) आप एक फॉर्म में बहुत सारे और बहुत सारे छवियों को लोड नहीं करना चाहते हैं। ओवरहेड महत्वपूर्ण हो सकता है। आप स्क्रीन पर दिखाई देने वाली छवियों में केवल चित्रों को लोड करना चाहते हैं - और आप केवल 5-10 छवियों (या स्क्रीन से बाहर किए बिना फ़ॉर्म पर जो भी छवियां दिखा सकते हैं) स्क्रीन पर रखेंगे। चूंकि उपयोगकर्ता नीचे स्क्रॉल करता है, आप स्क्रीन पर वही TImage नियंत्रण रखते हैं लेकिन आप उनमें नई (अगली) छवियां लोड करते हैं।

3) आप किसी सरणी में लेबल और टीआईमेज स्टोर नहीं करना चाहते हैं (मुझे लगता है कि यह एक टीआईमेज है क्योंकि ऐसा लगता है कि आप उन्हें स्क्रीन पर दिखाना चाहते हैं अन्यथा आपको लेबल की आवश्यकता नहीं होगी - आपको अपनी समस्या की व्याख्या करने की आवश्यकता है अगर मुझे यह गलत लगता है तो अधिक जानकारी में)। लेकिन आप इसके बजाए एक टीबीटमैप और टेक्स्ट (जिसे आप लेबल में प्रदर्शित करना चाहते हैं) स्टोर कर सकते हैं।

तो, आपको गणना करने की आवश्यकता हो सकती है कि आपके सैकड़ों नियंत्रण कितने CPU/डिस्क ओवरहेड बनाएंगे और उन्हें कितनी मेमोरी चाहिए। यदि आप 1 जीबी के तहत अच्छी तरह से रहते हैं और लोडिंग समय 10 सेकंड से कम है, तो यह अपेक्षाकृत ठीक है। यदि नहीं, तो आप वास्तव में इसे लागू करने से पहले अपने नियंत्रण के डिजाइन के बारे में सोचना चाह सकते हैं।

आशा है कि यह सहायक होगा। देखें या।

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

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