क्लिपबोर्ड मूल बातें (कट / कॉपी / पेस्ट)

विंडोज क्लिपबोर्ड किसी भी पाठ या ग्राफिक्स के लिए कंटेनर का प्रतिनिधित्व करता है जो किसी एप्लिकेशन से कट, कॉपी या पेस्ट किया जाता है। यह लेख आपको दिखाएगा कि अपने डेल्फी एप्लिकेशन में कट-कॉपी-पेस्ट सुविधाओं को लागू करने के लिए टीक्लिपबोर्ड ऑब्जेक्ट का उपयोग कैसे करें।

सामान्य में क्लिपबोर्ड

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

TClipboard

हमारे अनुप्रयोगों में विंडोज क्लिपबोर्ड का उपयोग करने के लिए, हमें इसे जोड़ना होगा ClipBrd इकाई प्रोजेक्ट के क्लॉज़ का उपयोग करने के अलावा, जब हम क्लिपबोर्ड विधियों के लिए पहले से ही निर्मित समर्थन वाले घटकों को काटने, कॉपी करने और चिपकाने को प्रतिबंधित करते हैं। वे घटक हैं टीईडिट, टीमेमो, टोलोकेनटेनर, टीडीडीसेवरइइटेम, टीडीबीईडिट, टीडीबीआईमेज और टीडीबीएमएमओ।

instagram viewer

क्लिपबोर्ड यूनिट स्वचालित रूप से क्लिपबोर्ड नामक एक TClipboard ऑब्जेक्ट का प्रतिनिधित्व करती है। हम उपयोग करेंगे CutToClipboard, क्लिपबोर्ड पर कॉपी करें, PasteFromClipboard, स्पष्ट तथा HasFormat क्लिपबोर्ड संचालन और पाठ / ग्राफिक हेरफेर से निपटने के तरीके।

पाठ भेजें और पुनः प्राप्त करें

क्लिपबोर्ड में कुछ टेक्स्ट भेजने के लिए क्लिपबोर्ड ऑब्जेक्ट की AsText संपत्ति का उपयोग किया जाता है। अगर हम चाहते हैं, उदाहरण के लिए, भेजने के लिए तार चर में कुछ जानकारी समरूपता के लिए क्लिपबोर्ड (सम्‍मिलित करना जो कुछ पाठ था), हम निम्‍न कोड का उपयोग करेंगे:

का उपयोग करता है ClipBrd; ...
क्लिपबोर्ड। AsText: = SomeStringData_Variable; 

क्लिपबोर्ड से पाठ की जानकारी प्राप्त करने के लिए हम इसका उपयोग करेंगे

का उपयोग करता है ClipBrd; ...
SomeStringData_Variable: = क्लिपबोर्ड। AsText; 

नोट: यदि हम केवल पाठ को कॉपी करना चाहते हैं, तो आइए, घटक को क्लिपबोर्ड पर संपादित करें, हमें क्लिपबर्ड इकाई को उपयोग खंड में शामिल करने की आवश्यकता नहीं है। TEdit की CopyToClipboard विधि, CF_TEXT प्रारूप में क्लिपबोर्ड पर संपादित नियंत्रण में चयनित पाठ को कॉपी करती है।

प्रक्रिया TForm1.Button2Click (प्रेषक: TObject); शुरू// निम्नलिखित पंक्ति का चयन करेगा // संपादन नियंत्रण में सभी पाठ {Edit1.SelectAll;}; Edit1.CopyToClipboard; समाप्त; 

क्लिपबोर्ड छवियाँ

क्लिपबोर्ड से चित्रमय चित्रों को पुनः प्राप्त करने के लिए, डेल्फी को पता होना चाहिए कि वहां किस प्रकार की छवि संग्रहीत है। इसी तरह, छवियों को क्लिपबोर्ड पर स्थानांतरित करने के लिए, एप्लिकेशन को क्लिपबोर्ड को यह बताना होगा कि वह किस प्रकार का ग्राफिक्स भेज रहा है। प्रारूप पैरामीटर के संभावित मूल्यों में से कुछ का पालन करते हैं; विंडोज द्वारा प्रदान किए गए कई और क्लिपबोर्ड प्रारूप हैं।

  • CF_TEXT - प्रत्येक पंक्ति के साथ पाठ एक के साथ समाप्त होता है सीआर वामो मेल।
  • CF_BITMAP - एक विंडोज बिटमैप ग्राफिक।
  • CF_METAFILEPICT - एक विंडोज मेटाफ़िल ग्राफिक।
  • CF_PICTURE - प्रकार की एक वस्तु TPicture।
  • CF_OBJECT - कोई भी स्थिर वस्तु।

अगर क्लिपबोर्ड में चित्र सही स्वरूप में है, तो HasFormat विधि सही है:

अगर क्लिपबोर्ड। HasFormat (CF_METAFILEPICT) फिर ShowMessage ('क्लिपबोर्ड में मेटाफ़ाइल') है; 

एक छवि को क्लिपबोर्ड पर भेजने (असाइन करने) के लिए असाइन करें पद्धति का उपयोग करें। उदाहरण के लिए, निम्न कोड बिटमैप को MyBitmap नाम के बिटमैप ऑब्जेक्ट से क्लिपबोर्ड पर कॉपी करता है:

 क्लिपबोर्ड। असाइन करें (MyBitmap); 

सामान्य तौर पर, MyBitmap, TGraphics, TBitmap, TMetafile या TPicture का एक प्रकार है।

क्लिपबोर्ड से एक छवि प्राप्त करने के लिए हमारे पास है: क्लिपबोर्ड की वर्तमान सामग्री के प्रारूप को सत्यापित करें और लक्ष्य ऑब्जेक्ट की असाइन विधि का उपयोग करें:

{फॉर्म 1 पर एक बटन और एक छवि नियंत्रण रखें} {इस कोड को निष्पादित करने से पहले Alt-PrintScreen कुंजी संयोजन दबाएं}का उपयोग करता है clipbrd... प्रक्रिया TForm1.Button1 क्लिक करें (प्रेषक: TObject); शुरूअगर क्लिपबोर्ड। HasFormat (CF_BITMAP) फिर Image1.Picture। बिटमैप। असाइन करें (क्लिपबोर्ड); समाप्त; 

अधिक क्लिपबोर्ड नियंत्रण

क्लिपबोर्ड कई स्वरूपों में जानकारी संग्रहीत करता है इसलिए हम विभिन्न स्वरूपों का उपयोग करके अनुप्रयोगों के बीच डेटा स्थानांतरित कर सकते हैं। डेल्फी के TClipboard वर्ग के साथ क्लिपबोर्ड से जानकारी पढ़ते समय, हम मानक क्लिपबोर्ड स्वरूपों तक सीमित होते हैं: पाठ, चित्र और मेटाफ़ाइल्स।

मान लीजिए कि आप दो अलग-अलग डेल्फी अनुप्रयोगों के बीच काम कर रहे हैं; उन दो कार्यक्रमों के बीच डेटा भेजने और प्राप्त करने के लिए आप कस्टम क्लिपबोर्ड प्रारूप को कैसे परिभाषित करेंगे? अन्वेषण के उद्देश्य के लिए, मान लें कि आप एक पेस्ट कोड करने का प्रयास कर रहे हैं मेनू आइटम. आप चाहते हैं कि जब क्लिपबोर्ड में कोई पाठ न हो (उदाहरण के लिए) तो इसे अक्षम कर दिया जाए।

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

अधिक लचीलापन और कार्यक्षमता का आनंद लेने के लिए, क्लिपबोर्ड परिवर्तन सूचनाओं और कस्टम क्लिपबोर्ड स्वरूपों से निपटना - क्लिपबोर्ड को सुनना - आवश्यक है।

instagram story viewer