Untuk "drag and drop" adalah untuk menahan mouse komputer tombol saat mouse digerakkan, dan kemudian lepaskan tombol untuk menjatuhkan objek. Delphi memudahkan program menyeret dan menjatuhkan aplikasi.
Anda benar-benar dapat menarik dan melepaskan dari / ke mana pun Anda suka, seperti dari satu formulir ke yang lain, atau dari Windows Explorer ke aplikasi Anda.
Seret dan Jatuhkan Contoh
Mulai proyek baru dan letakkan satu kontrol gambar pada formulir. Gunakan Object Inspector untuk memuat gambar (properti Picture) dan kemudian mengatur DragMode properti untuk dmManual. Kami akan membuat program yang akan memungkinkan memindahkan runtime kontrol TImage menggunakan teknik drag and drop.
DragMode
Komponen memungkinkan dua jenis penyeret: otomatis dan manual. Delphi menggunakan properti DragMode untuk mengontrol ketika pengguna dapat menarik kontrol. Nilai default properti ini adalah dmManual, yang berarti menyeret komponen di sekitar aplikasi tidak diperbolehkan, kecuali dalam keadaan khusus, di mana kami harus menulis kode yang sesuai. Terlepas dari pengaturan untuk properti DragMode, komponen hanya akan bergerak jika kode yang benar ditulis untuk memposisikannya.
OnDragDrop
Acara yang mengenali menyeret dan menjatuhkan disebut peristiwa OnDragDrop. Kami menggunakannya untuk menentukan apa yang kami inginkan terjadi ketika pengguna menjatuhkan objek. Oleh karena itu, jika kita ingin memindahkan komponen (gambar) ke lokasi baru pada formulir, kita harus menulis kode untuk event handler OnDragDrop formulir.
Parameter Sumber acara OnDragDrop adalah objek yang dijatuhkan. Jenis parameter sumber adalah TObject. Untuk mengakses propertinya, kita harus melemparkannya ke tipe komponen yang benar, yang dalam contoh ini adalah TImage.
Menerima
Kita harus menggunakan event OnDragOver form untuk memberi sinyal bahwa form dapat menerima kontrol TImage yang kita inginkan. Meskipun Menerima parameter default ke True, jika event handler OnDragOver tidak disediakan, kontrol menolak objek yang diseret (seolah-olah parameter Terima diubah menjadi Salah).
Jalankan proyek Anda, dan coba seret dan jatuhkan gambar Anda. Perhatikan bahwa gambar tetap terlihat di lokasi aslinya saat diseret penunjuk mouse bergerak. Kami tidak dapat menggunakan prosedur OnDragDrop untuk membuat komponen tidak terlihat saat proses seret berlangsung karena prosedur ini dipanggil hanya setelah pengguna menjatuhkan objek (jika sama sekali).
DragCursor
Jika Anda ingin mengubah gambar kursor yang disajikan saat kontrol diseret, gunakan properti DragCursor. Nilai yang mungkin untuk properti DragCursor adalah sama dengan nilai untuk properti kursor. Anda dapat menggunakan kursor animasi atau apa pun yang Anda suka, seperti file gambar BMP atau file kursor CUR.
BeginDrag
Jika DragMode adalah dmAutomatic, menyeret dimulai secara otomatis ketika kami menekan tombol mouse dengan kursor pada kontrol. Jika Anda meninggalkan nilai properti Dragmode TImage pada defaultnya dari dmManual, Anda harus menggunakan metode BeginDrag / EndDrag untuk memungkinkan menyeret komponen. Cara yang lebih umum untuk menarik dan melepas adalah mengatur DragMode ke dmManual dan mulai menyeret dengan menangani peristiwa mouse-down.
Sekarang, kita akan menggunakan Ctrl + MouseDown kombinasi keyboard untuk memungkinkan terjadinya drag. Set TImageDragMode kembali ke dmManual dan tulis event handler MouseDown seperti ini:
BeginDrag mengambil parameter Boolean. Jika kita melewati True (seperti dalam kode ini), menyeret segera dimulai; jika False, itu tidak dimulai sampai kita memindahkan mouse dalam jarak dekat. Ingat bahwa ini memerlukan tombol Ctrl.