2010-03-19 14 views
30

हमने देखा है कि हमारे डीएफएफ फाइलों में अपडेट की जांच करते समय स्पष्टीकरण विवाद और स्पष्टीकरण हाइट गुणों के लिए कोई विशेष कारण नहीं दिखता है।डेल्फी - स्पष्टीकरण Width और ExplicitHeight क्यों डीएफएफ फाइलों में दिख रहा है और यह क्या है?

मेरे दो प्रश्न हैं, वे क्या हैं और वे डेल्फी द्वारा स्वचालित रूप से क्यों जुड़ते हैं?

नीचे में संपत्ति के साथ एक उदाहरण है:

object Splitter2: TcxSplitter 
    Left = 0 
    Top = 292 
    Width = 566 
    Height = 8 
    Cursor = crVSplit 
    HotZoneClassName = 'TcxXPTaskBarStyle' 
    AlignSplitter = salBottom 
    Control = BottomPanel 
    Color = clBtnFace 
    ExplicitWidth = 8 
end 
+0

डेल्फी क्या करता है दस्तावेज कहता है? : पी – mjn

+13

क्या आप गंभीरता से मुझे आरटीएफएम का सुझाव दे रहे हैं? अब उसमें मजाक कहां है? और मुझे जोड़ना चाहिए कि मैं डेल्फी 2007 का उपयोग कर रहा हूं, इसलिए मैं * सहायता * लोड करने के लिए * प्रतीक्षा * कर रहा हूं। मैंने सोचा कि स्टैक ओवरफ्लो पर पूछना जल्दबाजी होगी! – Pauk

+1

@Mjustin, सहायता यह कहती है: * ExplicitWidth डेल्फी द्वारा आंतरिक रूप से उपयोग की जाने वाली एकमात्र संपत्ति है। अनुप्रयोगों में चौड़ाई का उपयोग करें, जिससे पढ़ने और लिखने की अनुमति मिलती है। * Http://docwiki.embarcadero.com/VCL/en/Controls.TControl.ExplicitWidth –

उत्तर

22

Googling से ....

Original article can be found here.

स्पष्ट गुण से पहले एक नियंत्रण के पिछले सीमा याद संरेखित या एंकर गुण उनके डिफ़ॉल्ट से बदल रहे हैं।

केवल समय स्पष्ट गुण नहीं लिखा जाता है जब संरेखित संपत्ति alNone की अपनी डिफ़ॉल्ट मूल्य वापस करने के लिए सेट कर दिया जाता है।

यह तब होता है जब स्पष्ट गुण वास्तव में पर नियंत्रण द्वारा उपयोग किए जाते हैं, जो इसकी सीमाओं को पर रीसेट कर देता है।

+2

वे आयाम हैं जिन्हें आपने * स्पष्ट रूप से * दिया है, जैसा कि उन्होंने अधिग्रहण किए गए आयामों के विपरीत * अंतर्निहित * संरेखण या एंकरिंग के कारण। वे अनिवार्य रूप से * मूल * आयाम नहीं हैं, जिन्हें आपने नियंत्रण के समय और उस समय के बीच बदल दिया होगा जब आपने अपना संरेखण सेट किया था। –

+11

यह व्यावहारिक लगता है, लेकिन वास्तव में ऐसा नहीं होता है: मेरे अनुभव में डेल्फी आईडीई उसी मूल्य को बाएं/दाएं/चौड़ाई/ऊँचाई में अपने स्पष्टीकरण XXX समकक्षों को संग्रहीत करने के बीच स्विच करता है जब फॉर्म .dfm पर लिखा जाता है। यह एक TComboBox की ItemHeight संपत्ति पर लागू होता है जो 0 और 13 के बीच बदलता है और हर समय वापस आता है। जब मेरा स्रोत नियंत्रण हर समय .dfm में परिवर्तन पोस्ट करना चाहता है तो यह काफी परेशान हो जाता है जब वास्तव में कुछ भी नहीं बदला जाता है। – dummzeuch

+4

@dummzeuch कई डेल्फी संस्करण आपके द्वारा उल्लेख किए गए व्यवहार को प्रदर्शित करते हैं। यह परेशान है क्योंकि यह संस्करण नियंत्रण इतिहास में diffters clutters। –

0

डेल्फी DFM फाइल करने के लिए प्रकाशित गुण का मान कहते हैं केवल जब अपने मूल्य डिफ़ॉल्ट से भिन्न।

उदाहरण के लिए:

property ExplicitWidth: Integer read FExplicitWidth write FExplicitWidth default 1;

तो ExplicitWidth मान 1 तो नहीं है, यह DFM के लिए लिखा जाएगा। जब "डिफ़ॉल्ट" परिभाषित नहीं किया जाता है तो कोई भी मूल्य डीएफएम को लिखा जाएगा।

टीसीएक्सस्पिप्टर मानक डेल्फी घटक नहीं है, तो आप गुणों के उद्देश्य के बारे में अपने लेखक से बेहतर पूछेंगे।

+5

मैंने अभी एक उदाहरण के रूप में TcxSplitter सूचीबद्ध किया है जिसे मुझे हाथ देना था। यह आमतौर पर टीएफओआर के साथ होता है। – Pauk

29

DDevExtensions आप DFM में इन गुणों के भंडारण को निष्क्रिय कर सकते हैं:
http://andy.jgknet.de/blog/?page_id=10

स्पष्ट * संपत्ति पदच्युत जोड़ता DFM पुराने डेल्फी संस्करण के लिए संगत फ़ाइलें रखने के लिए

+8

+1। मैं इसे संगत कारणों के लिए उपयोग नहीं करता लेकिन केवल मेरे डीएफएम को छोटा रखने के लिए और स्रोत नियंत्रण कम अव्यवस्थित है। –

+3

मुझे यह पसंद है, चूंकि Ulrich की तरह, यह इसे स्रोत कोड अपडेट पर हमें बगैर करने से हटा देता है। इच्छा है कि मैं इस और जेम्सबी के जवाब दोनों के बीच जवाब विभाजित कर सकता हूं! – Pauk

+0

बात यह है कि जब तक कि आपके डीएफएम को संपादित करने वाले प्रत्येक व्यक्ति को डीडीवीएक्स्टेंशन भी इंस्टॉल नहीं किया जाता है, और विकल्प चालू हो जाता है, तो जब भी आप फ़ाइल को सहेजते हैं तो आप अधिक अंतर के साथ समाप्त हो जाएंगे। – SoftDeveloper

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