"ड्रैग एंड ड्रॉप" को दबाए रखना है कम्प्यूटर का माउस बटन के रूप में माउस ले जाया जाता है, और फिर वस्तु छोड़ने के लिए बटन छोड़ें। डेल्फी अनुप्रयोगों में खींचने और छोड़ने के कार्यक्रम को आसान बनाता है।
आप वास्तव में अपनी पसंद से ड्रैग / ड्रॉप कर सकते हैं / जहां भी चाहें, जैसे एक फॉर्म से दूसरे फॉर्म में, या विंडोज एक्सप्लोरर से अपने एप्लिकेशन में।
ड्रैगिंग और ड्रोपिंग उदाहरण
एक नई परियोजना शुरू करें और एक फॉर्म पर एक छवि नियंत्रण रखें। चित्र (चित्र संपत्ति) को लोड करने के लिए ऑब्जेक्ट इंस्पेक्टर का उपयोग करें और फिर सेट करें DragMode के लिए संपत्ति dmManual. हम एक प्रोग्राम बनाएंगे जो TImage कंट्रोल रनटाइम को स्थानांतरित करने की अनुमति देगा खींचें और ड्रॉप तकनीक.
DragMode
घटक दो प्रकार के खींचने की अनुमति देते हैं: स्वचालित और मैनुअल। जब उपयोगकर्ता नियंत्रण को खींचने में सक्षम होता है तो डेल्फी ड्रैगकोड प्रॉपर्टी को नियंत्रित करने के लिए उपयोग करता है। डिफ़ॉल्ट गुण यह गुण dmManual है, जिसका अर्थ है कि घटकों को चारों ओर खींचना आवेदन की अनुमति नहीं है, विशेष परिस्थितियों में छोड़कर, जिसके लिए हमें लिखना होगा उपयुक्त कोड। ड्रैगकोड प्रॉपर्टी के लिए सेटिंग के बावजूद, कंपोनेंट तभी चलेगा, जब उसे रिप्रेजेंट करने के लिए सही कोड लिखा जाए।
OnDragDrop
वह घटना जो ड्रैगिंग और ड्रॉपिंग को पहचानती है, उसे ऑनड्रैगड्रॉप इवेंट कहा जाता है। हम इसका उपयोग यह निर्दिष्ट करने के लिए करते हैं कि जब उपयोगकर्ता किसी वस्तु को गिराता है तो हम क्या करना चाहते हैं। इसलिए, यदि हम किसी घटक (छवि) को किसी नए स्थान पर फ़ॉर्म में ले जाना चाहते हैं, तो हमें फॉर्म के ऑनड्रैगड्रॉप ईवेंट हैंडलर के लिए कोड लिखना होगा।
OnDragDrop इवेंट का स्रोत पैरामीटर ऑब्जेक्ट गिराया जा रहा है। स्रोत पैरामीटर का प्रकार TObject है। इसकी संपत्तियों तक पहुंचने के लिए, हमें इसे सही घटक प्रकार में डालना होगा, जो इस उदाहरण में TImage है।
स्वीकार करना
हमें फॉर्म के ऑनड्रैगओवर इवेंट का उपयोग यह संकेत करने के लिए करना होगा कि फॉर्म उस TImage नियंत्रण को स्वीकार कर सकता है जिसे हम उस पर छोड़ना चाहते हैं। हालांकि स्वीकार करते हैं पैरामीटर True पर डिफॉल्ट होता है, अगर एक OnDragOver ईवेंट हैंडलर की आपूर्ति नहीं की जाती है, तो नियंत्रण ड्रैग की गई वस्तु को अस्वीकार कर देता है (जैसे कि स्वीकृत पैरामीटर गलत में बदल गया था)।
अपनी परियोजना को चलाएं, और अपनी छवि को खींचने और छोड़ने का प्रयास करें। ध्यान दें कि चित्र ड्रैग करते समय अपने मूल स्थान पर दिखाई देता है माउस पॉइंटर चलता है. हम घटक को अदृश्य बनाने के लिए OnDragDrop प्रक्रिया का उपयोग नहीं कर सकते, जबकि खींचने की क्रिया होती है क्योंकि उपयोगकर्ता द्वारा वस्तु को छोड़ने के बाद ही इस प्रक्रिया को कहा जाता है (यदि बिल्कुल भी)।
DragCursor
यदि आप नियंत्रण खींचे जाने पर प्रस्तुत कर्सर छवि को बदलना चाहते हैं, तो DragCursor संपत्ति का उपयोग करें। DragCursor संपत्ति के लिए संभावित मान वही हैं जो Cursor संपत्ति के लिए हैं। आप एक BMP छवि फ़ाइल या CUR कर्सर फ़ाइल की तरह एनिमेटेड कर्सर या जो कुछ भी आप चाहें उपयोग कर सकते हैं।
BeginDrag
यदि DragMode dmAutomatic है, तो नियंत्रण पर कर्सर के साथ माउस बटन दबाने पर ड्रैगिंग अपने आप शुरू हो जाती है। यदि आपने TImage के DragMode गुण को dmManual के डिफ़ॉल्ट पर छोड़ दिया है, तो आपको घटक को खींचने की अनुमति देने के लिए BeginDrag / EndDrag विधियों का उपयोग करना होगा। ड्रैग और ड्रॉप करने का एक और आम तरीका ड्रैगएमोड को dmManual पर सेट करना और माउस-डाउन इवेंट्स को हैंडल करके ड्रैग करना शुरू करना है।
अब, हम उपयोग करेंगे Ctrl + MouseDown कीबोर्ड संयोजन को जगह लेने के लिए खींचने की अनुमति देता है। सेट TImageDmManual पर ड्रैगकोड वापस करें और इस तरह से माउसडाउन ईवेंट हैंडलर लिखें:
बिग्रेड एक बुलियन पैरामीटर लेता है। यदि हम ट्रू (इस कोड में) पास करते हैं, तो ड्रैगिंग तुरंत शुरू हो जाती है; यदि गलत है, तो यह तब तक शुरू नहीं होता है जब तक हम माउस को थोड़ी दूरी पर नहीं ले जाते। याद रखें कि इसके लिए Ctrl कुंजी की आवश्यकता है।