2012-01-23 10 views
18

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

enter image description here

धन्यवाद

शीर्ष क्षेत्र में
+0

हां, @ लामा, यही वह है जो मैं करना चाहता हूं। क्या आप जानते हैं कैसे? – Astervista

+0

@Astervista, नहीं, लेकिन मैं इसे खोजने का प्रयास करूंगा क्योंकि यह दिलचस्प सवाल है और यह पहले से ही मेरे पसंदीदा में है :) ओटी, ['यहां '] (http://weblogs.asp.net/kennykerr/archive/2006/ 08/10/विंडोज़-विस्टा-डेवलपर्स-_1320_-भाग -3-_1320_-द-डेस्कटॉप-विंडो-प्रबंधक.एएसपीएक्स) डेस्कटॉप विंडो मैनेजर और उसके कुछ कार्यों के बारे में एक दिलचस्प पठन, लेकिन मुझे नहीं लगता कि वहां है वहां आपके प्रश्न का उत्तर (यही कारण है कि ओटी :) – TLama

+0

धन्यवाद, @TLama। – Astervista

उत्तर

5

आहरण बस वैकल्पिक रूप से गैर ग्राहक क्षेत्र में एक कांच के फ्रेम और चित्रकला का उपयोग कर, या, DwmExtendFrameIntoClientArea एपीआई का उपयोग करने की बात है।

इसके लिए मैंने देखा है कि सबसे अच्छा कोड नमूना वीसीएल "रिबन" नियंत्रण है, जो "गैर क्लाइंट क्षेत्र" में चित्रित "क्यूएटी" (त्वरित एक्सेस टूलबार) क्षेत्र प्रदान करता है।

ध्यान दें कि लेखक को केवल ग्लास चालू होने पर Vista/Win7 सिस्टम को प्रस्तुत करने के बारे में सोचना नहीं है, बल्कि यह भी तय करना है कि थीम इंजन बंद होने पर WinXp, Win7 और Vista पर कैसे प्रस्तुत किया जाए। Vcl.Ribbon.pas में केवल कुछ तर्क हैं (या यदि आप XE या इससे पहले हैं तो केवल रिबन पैस) उस इकाई को समर्पित है।

वीसीएल रिबन स्रोतों में procedure TCustomRibbonQuickAccessPopupToolbar.NCPaint(DC: HDC); पर देखें।

नीचे से निकलने वाले गैर-आयताकार "विस्तारित क्षेत्र" को चित्रित करना शायद एक कस्टम विंडो क्लिपिंग क्षेत्र लागू करने का विषय है।

+0

लेकिन फिर आपको चमकते किनारे को अपने आप से आकर्षित करना होगा, है ना? और यदि हां, सवाल तो कैसे है? – TLama

+1

यदि आप आधुनिक तकनीकों का पालन नहीं करते हैं। मेरा मानना ​​है कि डेवन का जवाब आपको उस हिस्से से जोड़ता है, यहां सेटविंडोआरगन और पारदर्शी रंग मानों के बारे में टिप्पणियां देखें: http: // stackoverflow।कॉम/प्रश्न/3572342/अनियमित रूप से आकार-रूप –

+0

कोई उदाहरण हजारों शब्दों से अधिक समझाएगा। क्षमा करें मैं इस पर काफी लंगड़ा हूं और इसमें कोई संकेत नहीं है कि इसे कैसे किया जाए। आप ['UpdateLayeredWindow'] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms633556%28v=vs.85%29.aspx) का उपयोग करना चाहते हैं? क्या यह वास्तव में चाल करेगा? – TLama

0

क्या आपका मतलब है कि आप आकार के रूप चाहते हैं? यदि ऐसा है तो

Irregularly shaped forms

मदद कर सकता है। मुझे लगता है कि यह विंडोज 7 पर काम करेगा (उत्तर में रेमी की टिप्पणी नोट करें)।

एचएच