delphi - Metafile clipping rectangle -


निम्नलिखित कोड काफी कुछ परेशानियां करता है:

  प्रक्रिया TForm1.Button1Click (प्रेषक: टूबैक्ट) ; Var डीसी: एचडीसी; मेटा: TMetafile; मेटाकैंव: TMetafileCanvas; सीआर: ट्रक्ट; Sz: TSize; डीसी शुरू करें: = GetDC (0); सेटवंडोएक्सटेक्स (डीसी, 4800, 1300, एसएस); शो मेसेज (प्रारूप ('आकार% d,% d', [sz.cx, sz.cy])); मेटा: = TMetafile.Create; मेटा .सेट साइज़ (4500, 1300); मेटाकैंव: = TMetafileCanvas.Create (मेटा, डीसी); कोशिश IntersectClipRect (metaCanv.Handle, 0, 0, 4600, 1300); Cr: = metaCanv.ClipRect; सीआरओ शो मेसेज के साथ (प्रारूप ('क्लिप रीक्ट:% d,% d,% d,% d', [शीर्ष, वाम, नीचे, दाएं])); अंत में metaCanv.Free; meta.Free; समाप्त; DeleteDC (डीसी); समाप्त;   

समस्या यह है कि क्लिपिंग आयत प्रदर्शन संकल्प के लिए बाध्य है उदा। यदि आपकी स्क्रीन में 1920 पिक्सल की चौड़ाई है, तो क्लिपिंग आयत इस मान के लिए बाध्य है।

ध्यान दें कि यह पूरी तरह से नीचे के कोने में पूरी तरह से कतरन और पेंट लाइन इवेंट को हटाने की समस्या नहीं है। समस्या तब होती है जब एक कतरन क्षेत्र सेट किया जाता है (उदाहरण के लिए, उदाहरण के रूप में दिखाया गया पूरा मेटाफ़ाइल चौड़ाई / ऊंचाई) और फिर रेखा रंग - & gt; यह स्क्रीन की चौड़ाई / ऊंचाई पर काटा जाता है।

मुझे पता है कि मैं उदाहरण का उपयोग कर सकता हूं एक प्रिंटर डीसी संदर्भ के रूप में जो मूल रूप से समस्या को ठीक कर सकता है लेकिन कुछ साइड इफेक्ट्स (जैसे जीडीआई + ऐसे डीसी के साथ मेटाफ़ाइल पर ड्राइंग बस काम नहीं करती हैं)।

कोई भी जानता है कि सिस्टम को "चाल" कैसे करना है कि यह अजीब कतरन व्यवहार अब और नहीं है?

क्लिप राय केवल उस भाग में आप आकर्षित कर सकते हैं एक झूठी अनुमान है।

इस पर प्रलेखन:

कैनवास को पेंटिंग की आवश्यकता है, यह निर्धारित करने के लिए क्लीपरेक्ट का उपयोग करें।

यह आसानी से ClifRect से परे खींचकर सत्यापित किया जाता है और उदाहरण के लिए, जो तैयार किया गया है, उसे दिखाने का प्रयास करना:

  प्रक्रिया TForm1.Button1Click (प्रेषक: TObject); Var मेटाफ़ाइल: TMetafile; मेटाकनवास: TMetafileCanvas; मेटाफ़ाइल शुरू करें: = TMetafile.Create; MetaCanvas कोशिश: = TMetafileCanvas.Create (MetaFile, 0); MetaFile.SetSize की कोशिश करें (4500, 1300); मेटाकनवास.लाइनटो (4500, 1300); अंत में मेटाकनवास। फ्री; समाप्त; कैनवास.ड्रा (-4400, -1200, मेटाफ़ाइल); अंत में मेटाफ़ाइल। फ्री; समाप्त; समाप्त;   

यहां छवि विवरण दर्ज करें < / html>

Comments

Popular posts from this blog

excel vba - How to delete Solver(SOLVER.XLAM) code -

github - Teamcity & Git - PR merge builds - anyway to get HEAD commit hash? -

ios - Replace text in UITextView run slowly -