2008-11-18 5 views
5

पर एक यूनिकोड सक्षम डेल्फी 2006 आवेदन पोर्टिंग मेरे पास एक ऐसा एप्लिकेशन है जो डेल्फी 2006 में पूरी तरह से यूनिकोड संगत है। मैंने सभी AnsiStrings को वाइडस्ट्रिंग्स के साथ बदल दिया है, सभी वीसीएल नियंत्रणों को टीएनटी नियंत्रणों से बदल दिया है, और सभी स्ट्रिंग फ़ंक्शंस को AnsiStrings से बदल दिया है WideStrings। ऐसा लगता है कि यह काम कुछ भी नहीं था, क्योंकि मुझे इसे सब कुछ उलटना होगा। क्या ट्रिक डेल्फी 200 9 में सोचने के लिए वैसे भी है कि वास्तव में यूनिकोडस्ट्रिंग्स हैं?डेल्फी 200 9

+0

वैसे, यहां एक उत्तर स्वीकार करने के लिए स्वतंत्र महसूस करें ..... –

उत्तर

13

नहीं, वास्तव में नहीं है। लेकिन आपको वास्तव में यूनिकोड को अपने आवेदन को सक्षम करने के लिए काम पर अफसोस नहीं होगा।

टीएनटी नियंत्रण नियमित रूप से नियमित वीसीएल नियंत्रणों के साथ प्रतिस्थापित किया जा सकता है। आप GExperts (http://www.gexperts.org) से विज़ार्ड का उपयोग करके बस इतना सुंदर कर सकते हैं जो एक नियंत्रण प्रकार को दूसरे से स्वचालित रूप से बदल देता है।

फिर, आप अपने सभी वाइडस्ट्रिंग घोषणाओं को नियमित तारों में बदल सकते हैं। स्ट्रिंग अब यूनिकोडस्ट्रिंग के लिए एक उपनाम है, और इसलिए आपके सभी तार यूनिकोड डेटा को ठीक से पकड़ सकते हैं।

टीएनटी नियंत्रण के लेखक बीटीडब्ल्यू, ट्रॉय वोल्ब्रिंक, अब अपने स्वयं के नियंत्रण में डेल्फी 200 9 को काफी पसंद करते हैं।

+1

और यदि मैं कह सकता हूं कि आपके कोड को यूनिकोड डेल्फी में परिवर्तित करने के लिए वहां कुछ बेहतरीन संसाधन हैं, तो कुछ लोगों द्वारा लिखे गए सफेद कागजात हैं निक नाम दिया। इसके अलावा, मार्को कैंटू द्वारा एक बहुत अच्छी किताब है, जिसमें गहराई में रूपांतरण शामिल है। इसके कई कारण हैं, और आपके आवेदन को मूल यूनिकोड डेल्फी जाने में सक्षम करने के लिए बहुत सारे पे-बैक हैं। मैंने इसे कम से कम एक दर्जन प्रमुख ऐप्स के लिए किया है। –

+0

अच्छा, शक्स, वॉरेन। :-) –

0

टीएनटी नियंत्रण का मुख्य लाभ केवल यह है कि यह विंडोज 9एक्स में अंसी प्रोग्राम के रूप में काम कर सकता है। यह पूर्ण यूनिकोड नहीं है। यदि आप हर जगह पूर्ण यूनिकोड समर्थन चाहते हैं (जैसे Stringlist.LoadFromFile, Form.OnKeyPress) डेल्फी 200 9 में जाने के लिए अच्छा है।

+0

मैंने WideStringLists के साथ हर जगह स्ट्रिंगलिस्ट को भी बदल दिया। डेल्फी 200 9 में टेक्स्ट फाइल यूनिकोड हैं? मैंने फाइलस्ट्रीम के साथ टेक्स्ट फाइलों को बदल दिया। – Steve

+0

आप widestringlist के साथ यूनिकोड टेक्स्ट लोड कर सकते हैं, लेकिन आप फ़ाइल से टेक्स्ट को गैर-ansi फ़ाइल नाम से लोड नहीं कर सकते हैं, जैसा कि आपने इसे ansi फ़ाइल नामों के साथ किया था। – samir105

0

मैंने एक ही ऐप्लिकेशन में एक ही काम किया है जो विभिन्न एक्सएमएल फाइलों को इनपुट के रूप में इस्तेमाल करता है। मेरे मामले में, मैं पूरे कार्यक्रम में यूटीएफ -8 (इसलिए हम नियमित तारों का उपयोग कर सकते थे) के साथ काम कर रहे थे और केवल प्रदर्शन उद्देश्यों (टीएनटी नियंत्रण) के लिए वाइडस्ट्रिंग में परिवर्तित हो गए थे।

मैंने वाइडस्ट्रिंग और यूटीएफ -8 के बीच रूपांतरणों को पीछे और पीछे हटा दिया और नियमित वीसीएल नियंत्रणों के साथ टीएनटी नियंत्रणों को हाथ से हटा दिया क्योंकि केवल कुछ मुट्ठी भर थे।

रूपांतरण में परीक्षण के साथ लगभग एक घंटे लग गए। कोड सरल है और कार्यक्रम काफी तेज है।