2013-07-04 7 views
5

आप ऐसा करते हैं:TEdit केवल लंबाई के बराबर या 37440 वर्णों से कम टेक्स्ट दिखाता है?

Edit1.Text := StringOfChar('X', 37440); 

यह पाठ दिखाई देगा, लेकिन यदि आप ऐसा करते हैं:

Edit1.Text := StringOfChar('X', 37441); 

पाठ दिखाई नहीं देगा।

क्या कोई जानता है क्यों?
यदि यह एक त्रुटि है, तो सभी मौजूदा घटकों को टीएममो में बदलने के बजाय समायोजन का एक और तरीका है?
क्यों 37440 वैसे भी?

+0

यदि हम समान ओएस का उपयोग कर रहे हैं, तो आप '.' f.i. का उपयोग करते हुए 37440 से अधिक वर्ण प्रदर्शित करने में सक्षम होंगे। 'एक्स' के बजाय। जिसका अर्थ है कि एमएस दस्तावेज में निर्दिष्ट सीमा का मतलब कुछ भी नहीं है, क्योंकि आपने कार्यान्वयन विवरणों द्वारा लगाए गए मनमानी सीमाओं को मारा है। –

+0

हां, इस मामले में यह 43679 डॉट्स – EProgrammerNotFound

+0

में सीमित होगा और फिर यदि आप इसका उपयोग करते हैं। , यदि आप उस स्ट्रिंग का उपयोग एक में करते हैं, तो क्या आपको एपीआई कॉल के डब्ल्यू संस्करणों से चिपकना पड़ेगा? – Glenn1234

उत्तर

4

इसके बारे में आप चाहिए चेहरे पर EM_LIMITTEXT संदेश का उपयोग कर इस पर नियंत्रण करने में सक्षम हो:

EM_LIMITTEXT संदेश केवल पाठ उपयोगकर्ता दर्ज कर सकते हैं सीमित करता है। जब संदेश भेजा जाता है तो यह संपादन नियंत्रण में पहले से मौजूद किसी भी पाठ को प्रभावित नहीं करता है, और न ही यह WM_SETTEXT संदेश द्वारा संपादन नियंत्रण में कॉपी किए गए पाठ की लंबाई को प्रभावित करता है। यदि कोई एप्लिकेशन EM_LIMITTEXT संदेश में निर्दिष्ट किए गए संपादन नियंत्रण में अधिक टेक्स्ट रखने के लिए WM_SETTEXT संदेश का उपयोग करता है, तो उपयोगकर्ता संपादन नियंत्रण की संपूर्ण सामग्री को संपादित कर सकता है।

EM_LIMITTEXT कहने से पहले, उपयोगकर्ता द्वारा संपादित नियंत्रण में प्रवेश करने वाले पाठ की मात्रा के लिए डिफ़ॉल्ट सीमा 32,767 वर्ण है।

और यह संदेश MaxLengthTEdit की संपत्ति से अवगत कराया गया है।

हालांकि, MaxLength को एक बड़े मूल्य पर सेट करने में मदद नहीं मिलती है। मैं बड़ी संख्या में वर्ण प्रदर्शित करने के लिए एक पंक्ति संपादन नियंत्रण को राजी नहीं कर सकता।

मुझे संदेह है कि आपके लिए एकमात्र व्यवहार्य विकल्प बहु-लाइन संपादन नियंत्रण का उपयोग करना है, जो TMemo है।

मुझे यकीन है कि एमएस तर्क देगा कि सिंगल लाइन एडिट कंट्रोल नियंत्रण हजारों पात्रों को पकड़ने के लिए डिज़ाइन नहीं किया गया है और इसलिए उनके पास उस नियंत्रण को और अधिक सक्षम बनाने के लिए कोई प्रेरणा नहीं है।

एफडब्ल्यूआईडब्ल्यू, नियंत्रण के यूनिकोड संस्करण के साथ, कटऑफ 37440 के बजाय 37444 पर प्रतीत होता है!

+0

बढ़िया, अब मुझे सिस्टम में सभी घटकों को प्रतिस्थापित करना है !! ऐसा करने के लिए इतना आसान है – EProgrammerNotFound

+0

यदि आपके पास CnWizards उदा।, तो आप घटक चयनकर्ता का उपयोग कर सकते हैं, सभी 'TEDIT' घटक फ़ॉर्म को फ़ॉर्म के रूप में चुनें और उन्हें' अधिकतम सीमा 'को सीमा मान (दुर्भाग्य से 0 से अलग) पर सेट करें। लेकिन जिज्ञासा से, इतने सारे वर्ण कभी कौन पढ़ेंगे? [+1] – TLama

+0

एक चयन घटक है जो चयनित आइटमों के मुख्य मूल्य ',' कुंजी मूल्य .. [...] को TEDit पर देता है, मैं सीमा का उपयोग नहीं कर सकता क्योंकि कुंजी मान अनुक्रमिक नहीं है संख्या – EProgrammerNotFound

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