Гэр / Компьютер эзэмших / Чирэх, буулгах технологийн нэрийг гэж орчуулсан. Drag and Drop технологийн онолын ерөнхий асуултууд. Чирэх, буулгах функцийг нэмж байна

Чирэх, буулгах технологийн нэрийг гэж орчуулсан. Drag and Drop технологийн онолын ерөнхий асуултууд. Чирэх, буулгах функцийг нэмж байна

График хэрэглэгчийн интерфейсийн талаар ярихад технологийн талаар хэлэхээс өөр аргагүй Чирэх болон Drop (шууд утгаараа: Татах, шидэх).

Энэ технологи нь чирж буулгах элементүүд дээр суурилдаг GUIэх сурвалжаас хүлээн авагч хүртэл. Интерфэйсийг зөвхөн хулгана (мэдрэгч самбар, трекбол) эсвэл мэдрэгчтэй дэлгэцээр ашиглах боломжтой.

Чирэх элементийг хулганаар барьж, нэгэн зэрэг өөр байршил руу чирнэ. Хулгана зөв байрлалд байх үед хулганы товчлуурыг суллаж объектыг суллана.

Гэсэн хэдий ч Drag'n Drop интерфэйс нь ижил аргаар хэрэгжсэн, шилжүүлэх үүрэгтэй аргуудтай интерфейсийн удирдлагаас ялгагдах ёстой. Жишээлбэл, цонх (маягт) нь дэлгэцийн эргэн тойронд шилжих чадвартай (гарчгийн хэсгийг чирж). ScrollBox нь гүйлгэх гулсагчтай. Гэхдээ хоёр жишээн дээр чирэх нь дотоод (бүрэлдэхүүн хэсгийн хувьд) үйлдэл (үйл явдал) бөгөөд системийн бусад объектуудад ямар ч байдлаар нөлөөлөхгүй.

Чирэх ба Интерфэйсийг буулгахзөвхөн савнууд нь нэг төрлийн бус байсан ч объектыг савнаас саванд шилжүүлэхэд л хамаарна. Жишээлбэл, хавтаснаас файлыг мэйл рүү чирэх.

Вэб технологи дахь Drag and Drop интерфейс

Интерфейс ашиглах Чирэх, буулгахвэб технологийн салбарт нээлт хийсэн. Офлайн Drag and Drop засварлагч (жишээлбэл, DreamWeaver) болон онлайн (жишээлбэл, орчин үеийн ямар ч вэбсайт бүтээгч) байдаг.

Юу авах хэрэгтэй, хаана тавихаа бичихээс илүүтэй юм аваад тавих нь амар байдаг. Мэдээжийн хэрэг, хулгана эсвэл үүнтэй төстэй төхөөрөмжгүйгээр та юу ч сонгох эсвэл зааж өгөх боломжгүй, гэхдээ одоо байгаа нөхцөл байдалд ч чирэх, буулгах санааг ашиглах нь маш энгийн бөгөөд тохь тухтай байдаг.

Энэ санааны хамрах хүрээ нь зөвхөн онлайн дэлгүүрүүд биш, дижитал номын сангууд, хайх эсвэл Мэдээллийн систем, гэхдээ бас хэрэглэх талбай. Энэ санаа нь програмистын оролцоогүйгээр интерактив байдлаар бүтээгдэж, засвар үйлчилгээ хийх сайтууд болон тэдгээрийн элементүүдийг хөгжүүлэхэд маш их хэрэг болно.

Үзэл санааны тайлбар

Сонгох, зөөх, тавих - санаа нь байгалийн бөгөөд тохиромжтой. Хулгана компьютерт зайлшгүй шаардлагатай нэмэлт хэрэгсэл болсон үед энэ нь төрөөгүй нь үнэхээр гайхалтай юм.

Хамгийн тод жишээ бол онлайн дэлгүүрт бүтээгдэхүүн сонгох явдал юм. Хүссэн бүтээгдэхүүнээ хулганаар сонгоод сагсанд чирнэ үү - энгийн, энгийн бөгөөд тохиромжтой. Файл байршуулах: Баримт бичгийг хөтчийн цонхноос гадуур авч, хуудасны элемент дээр байрлуулах, ингэснээр баримтыг сервер рүү шилжүүлэх ажлыг эхлүүлэх нь бас практик санаа юм.

Хөгжүүлэгчийн хувьд "чирж буулгах" санаа нь шошгоны координат, хэмжээг гараар дахин тооцоолохгүйгээр хуудасны элементүүдийг удирдах, олон элемент сонгох, тэдгээрийг зэрэгцүүлэх, блок шошгоны хажуу талыг зөөх чадвар юм.

HTML болон CSS - агуу хэлнүүдшошго, тэдгээрийн дизайны хэв маягийн тайлбар, гэхдээ хэрэв хөгжүүлэгч координат, хэмжээг гараар дахин тооцоолохгүйгээр хуудасны элементүүдийг интерактив байдлаар удирдах чадвартай бол энэ нь ажлыг илүү тав тухтай, үр дүнтэй болгодог.

Хялбар файл дамжуулах

"Чирч хаях": англи хэлнээс орос хэл рүү орчуулах нь шууд утгаараа "чирээд хаях" шиг сонсогддог. Практикт энэ нь сонсогдож, илүү сайн ажилладаг: сонгосон, шилжүүлсэн, орхих - энгийн бөгөөд байгалийн жамаар.

Хуудсаас хуудас руу, сервер рүү эсвэл өөр хэрэгцээнд зориулж файл дамжуулахыг хэрэгжүүлэх нь маш энгийн.

AT энэ жишээШирээний компьютер дээрх хэд хэдэн файлыг хулганаар сонгосон (зүүн зураг). Сонголт дээр хулганы зүүн товчийг дарж, сонгосон нь сагс руу "яв". Хөтөч нь өөрөө энэ нь хэрхэн тохиолддогийг харуулж, "хуулбарлах" зөвлөмжийг бичиж, шилжүүлж буй файлуудын тоймыг үүсгэсэн.

Хулгана сагсан дээр байх үед зочин суллав зүүн товчлуурхулгана, чирэх, буулгах үйл явдал болсон бөгөөд сайтын хуудсан дээр (доод зураг) JavaScript код нь зочны хуудсанд (сайт) өгсөн бүх файлыг хүлээн авч, боловсруулах боломжтой болсон.

Хэрэгжилтийн тодорхойлолт

Энэ процедурыг гүйцэтгэх код нь маш энгийн. Шинэхэн хөгжүүлэгч ч гэсэн ямар ч тохиолдолд үүнийг давтаж чадна.

Энд хэрэглэгчийн интерфэйс нь scPlaceFile (энэ нь таны файлуудыг байрлуулахыг хүссэн сагс) ба scPlaceFiles (энэ нь файл боловсруулах үр дүн, энэ тохиолдолд тэдгээрийн жагсаалт) гэсэн хоёр шошгоор илэрхийлэгддэг.

Хуудасны логик нь дараах байдалтай байна. Хуудсыг хөтөч дээр ачаалах үед "ondrop" үйл явдал зохицуулагчийг сагсанд хуваарилж, үлдсэн үйл явдлуудыг хааж, ашигладаггүй.

Хуудас хэвийн ажиллаж байгаа боловч зочин файлыг (файлуудыг) сонгоод сагсны зураг, өөрөөр хэлбэл scPlaceFile шошго руу чирмэгц "файлууд ирлээ" үйл явдал боловсруулагдах болно.

Энэ зохицуулагч нь зүгээр л файлуудын жагсаалтыг харуулдаг. Тэдний дугаар event.dataTransfer.files.length, файл бүрийн талаарх мэдээлэл event.dataTransfer.files[i].name дотор байна. Хүлээн авсан өгөгдөлтэй юу хийхээ хөгжүүлэгч өөрөө тодорхойлдог бөгөөд энэ тохиолдолд хүлээн авсан файлуудын жагсаалтыг зүгээр л бүрдүүлдэг.

Боловсруулсны дараа үйл явдлыг хааж, түгээхгүй. Хөтөч нь сонирхогчийн үйл ажиллагаанд оролцохгүй, хүлээн авсан мэдээллийг боловсруулахад саад учруулахгүйн тулд энэ нь зайлшгүй шаардлагатай.

DnD болон гадаад өгөгдөл

Энэ технологид "чирж, буулгах" горимоор серверт зураг байршуулах нь түгээмэл байдаг. Ихэвчлэн хөгжүүлэгч ердийн аргаар ажилладаг файл байршуулах маягтыг (1) үүсгэдэг (2). Зочин болно энгийн горимфайлуудыг сонгоод байршуулна уу.

Гэсэн хэдий ч, зочин маягтын тодорхой газар руу чирж, унагавал файлын нэрийн талбар (файлууд) автоматаар бөглөнө.

тэр сайн шийдвэр. Мэдээжийн хэрэг, компьютер дээр хулгана байхгүй гэдгийг хүлээн зөвшөөрөх нь маш хэцүү байдаг. Гэхдээ хэрэглэгчийн интерфэйсийг ердийн байдлаар, DnD хэрэгжүүлэлтээр хөгжүүлэх нь дээр.

DnD болон дотоод өгөгдөл

Зочдын ашиг сонирхлыг анхаарч үзэх нь үргэлж чухал боловч хөгжүүлэгчийн санаа зовоосон асуудал бас чухал юм. Та зөвхөн "чирж, буулгах" аргыг хэрэгжүүлж чадна стандарт гэсэн үг, гэхдээ хуудасны элементүүд дээр хулганы үйл явдлуудыг зохицуулах замаар.

Шошгоны координатын утга ба тэдгээрийн хэмжээг тооцоолох ажил байнга гарч ирдэг. Гараар тооцоолох - сайн дадлага, гэхдээ интерактив хувилбар нь илүү тохиромжтой. Бүх шошгууд нь үргэлж тэгш өнцөгт хэлбэртэй байдаг бөгөөд элементүүдийн хажуу тал дахь хулганын үйл явдлуудыг хянаснаар та элементүүдийг хуудасны зөв газар руу автоматаар шилжүүлэх, эсвэл тэдгээрийг өөрчлөх чадварыг бий болгож чадна.

Хулганы товчлуурыг дарах үйл явдлыг зохицуулах - товшилтын байршлын координатыг санах, жишээлбэл, элементийн талуудын нэг. Хулганаа зөөх - хажуу тийш нь зөөнө зөв чиглэл. Хулганы товчлуурыг суллах - хажуу тал нь зогсч, координатууд нь өөрчлөгддөг. Ингэснээр та элементийн байрлал эсвэл түүний хэмжээг өөрчилж болно.

Энэ нь албан ёсоор чирэх, буулгах арга биш боловч үр нөлөө нь ижил төстэй бөгөөд практик юм. Аливаа хуудасны элементэд зориулж универсаль зохицуулагч хийснээр та сайн интерактив үр дүнд хүрч, хөгжлийг хурдасгаж, кодыг хялбаршуулж чадна.

Визуал болон гарын авлагын програмчлал

Компьютер дээрх хулгана, ухаалаг гар утсан дээрх хуруу нь хэрэглэгчийн интерфэйсийг (зочин, хөгжүүлэгч) хэрэгжүүлэхэд огт өөр хандлага юм. Энэ нь хөтчүүд хоорондын нийцтэй байдлын бүрэн байгалийн бөгөөд орчин үеийн шаардлага юм.

Энэ бүхэн нийлээд хуудас үүсгэхэд хүндрэл учруулдаг ч чирэх, буулгах санааг хэрэгжүүлэх нь стандарт хэлбэр, түүний үйл явдлуудыг ашиглан энэ санааг элементүүд дээрх ердийн үйл явдлуудтай хослуулснаар та хуудсыг бүтээх нь нүдээр харагдах механизмыг хэрэгжүүлж болно.

Одоо элемент эсвэл элементийн сонголтыг харцгаая. Сонгох баримт - контекст цэсийн харагдах байдал, жишээлбэл, зорилго нь сонгосон нэгийг (зүүн, баруун, төв) зэрэгцүүлэх, эсвэл ижил алхамаар элементүүдийг босоо болон хэвтээ байдлаар хуваарилах, эсвэл хэмжээг нь өөрчлөх (хамгийн бага, хамгийн их).

Координат ба хэмжээсийг автоматаар дахин тооцоолох нь гарын авлагаас илүү тохиромжтой. Цөөн алдаа - зорилгодоо илүү хурдан хүрдэг. Нэмж дурдахад та нэг хөтөч дээр хуудас хийж, элементийн байрлал, хэмжээг хадгалах боломжтой. Ухаалаг утсан дээр энэ хуудсыг нээснээр та координат, хэмжээсийг засч, тэдгээрийг санах боломжтой тодорхой загварухаалаг гар утас эсвэл хөтөчийн хувилбар.

Хөтөч хоорондын нийцтэй байдлын шаардлагыг гараар дагаж мөрдөөгүй ижил хуудас нь өөр өөр өгөгдөлтэй байх болно. янз бүрийн төхөөрөмжболон өөр өөр хөтөч дээр.

Хэрэв та зочдод эдгээр процедурыг бие даан гүйцэтгэхийг зөвшөөрвөл, мөн хөгжүүлэгчийн өгсөн жагсаалтаас шаардлагатай хуудасны элементүүдийг сонговол хөтчүүд хоорондын нийцтэй байдал, хуудасны шаардлагатай функцийг хангах боломжтой. хэрэглэгчийн санал бодол.

VCL номын сангийн хувьд Borland Drag&Drop интерфейсийн өөрийн хувилбарыг ("чирэх" гэж орчуулсан) хэрэгжүүлсэн. Энэ интерфэйс нь дотоод юм - "Маягтаас бусад нь" маягт дотор Delphi-ийн дурын удирдлагыг илгээж, хүлээн авах боломжтой. Энэ нь Windows API-ийн харгалзах функцүүдийг ашиглахгүйгээр хэрэгждэг - тэдгээрийг чирж, буулгах замаар бусад ажлуудтай харилцах ажлыг зохион байгуулахад ашиглах ёстой. .

Хулганы зүүн товчийг удирдлага дээр дарснаар бид үүнийг өөр ямар ч элемент рүү "чирж" болно. Програмистын үүднээс энэ нь түлхүүрийг чирж, суллах мөчид шаардлагатай бүх мэдээллийг дамжуулах тодорхой үйл явдлууд үүсдэг гэсэн үг юм - чирсэн объект руу заагч, одоогийн курсорын координат гэх мэт. Үйл явдал хүлээн авагч нь элемент юм. аль дээр Энэ мөчкурсор байрладаг. Ийм үйл явдлыг зохицуулагч нь өгөгдсөн удирдлага нь "илгээлт"-ийг хүлээн авах эсэхийг системд хэлэх ёстой. Хүлээн авагчийн удирдлага дээр товчлуурыг суллахад хүлээн авагчийн бэлэн байдлаас хамааран нэг эсвэл хоёр үйл явдал гарч ирдэг.

CancelDrag Одоогийн чирэх, буулгах эсвэл чирэх, залгах үйлдлийг цуцална.

FindDragTarget функц (const Pos: TPoint ;AllowDisabled: Boolean ): TControl ;

Уг функц нь үндсэн ангийн объектыг буцаана TControl , энэ нь Pos параметрээр заасан координат бүхий дэлгэцийн байрлалыг хэлнэ. Энэ функц нь чирэх, буулгах эсвэл чирэх, залгах үйлдлийн боломжит хүлээн авагчийг тодорхойлоход хэрэглэгддэг. Хэрэв заасан байрлалд цонхны удирдлага байхгүй бол функц буцаанатэг . AllowDisabled параметр нь идэвхгүй болсон объектуудыг харгалзан үзэх эсэхийг тодорхойлдог.

Функц IsDragObject(Илгээгч: TObject ): Boolean ;

Энэ функц нь Sender параметрт заасан объект нь тухайн ангийн удам мөн эсэхийг тодорхойлно TDragObject . Энэ функцчирсэн объектыг хүлээн авах эсэхийг тодорхойлохын тулд OnDragOver болон OnDockOver үйл явдлын зохицуулагчийн Source параметр болгон ашиглаж болно. Мөн функцтэй IsDragObjectЧирүүлсэн объектыг зөв тайлбарлахын тулд OnDragDrop болон OnDockDrop үйл явдлын зохицуулагчийн Source параметр болгон ашиглаж болно.

DragMode, DragCursor шинж чанарууд, BeginDrag, OnDragOver, OnDragDrop, OnEndDrag, OnStartDrag аргууд, Параметрийг зөвшөөрөх

Мэдээллийг нэг объектоос нөгөө объект руу хулганаар чирэх процессыг Widows-д өргөн ашигладаг.Та хавтас хооронд файл зөөх, фолдерыг өөрөө зөөх болон бусад зүйлсийг хийх боломжтой.

Чирэх, буулгах үйл явцтай холбоотой бүх шинж чанар, арга, үйл явдлууд нь Delphi-ийн бүх харааны бүрэлдэхүүн хэсгүүдийн эцэг эх болох TControl ангид тодорхойлогддог. Тиймээс тэдгээр нь бүх бүрэлдэхүүн хэсгүүдэд нийтлэг байдаг.

Чирэх эхлэлийг DragMode шинж чанараар тодорхойлдог бөгөөд үүнийг дизайн хийх хугацаанд эсвэл программын хувьд dmManual эсвэл dmAutomatic-тай тэнцүү болгож болно. dmAutomatic (автомат)-ийн утга нь хэрэглэгч бүрэлдэхүүн хэсэг дээр хулганы товчийг дарахад чирэх процесс автоматаар эхлэхийг тодорхойлдог. Гэхдээ энэ тохиолдолд хулганын товчлуурыг дарахтай холбоотой OnMouseDown үйл явдал энэ бүрэлдэхүүн хэсэгт огт тохиолддоггүй.

Бүрэлдэхүүн хэсгүүдийг дамжуулах, хүлээн авах интерфейс нь эрт дээр үеэс гарч ирсэн. Энэ нь програмыг ажиллуулах явцад хоёр удирдлагын харилцан үйлчлэлийг хангадаг. Энэ тохиолдолд шаардлагатай бүх үйлдлүүдийг хийж болно. Хэрэгжилтийн энгийн байдал, хөгжлийн насыг үл харгалзан олон програмистууд (ялангуяа эхлэгчдэд) энэ механизмыг ойлгомжгүй, чамин гэж үздэг. Гэсэн хэдий ч Drag-and-Drop ашиглах нь маш ашигтай бөгөөд хэрэгжүүлэхэд хялбар байж болно. Одоо бид үүнийг шалгах болно.

Механизмыг ажиллуулахын тулд хоёр удирдлагыг зохих ёсоор тохируулах шаардлагатай. Нэг нь эх сурвалж (эх сурвалж), хоёр дахь нь хүлээн авагч (зорилтот) байх ёстой. Энэ тохиолдолд эх үүсвэр нь хаашаа ч хөдөлдөггүй, зөвхөн механизмд ийм байдлаар бүртгэгддэг.

Надад итгээрэй, үүнийг өөрчлөхөд хангалттай хялбар байдаг X,Y координатууд, OnDragOver болон OnDragDrop үйл явдлын параметрүүдийг маягтын координат болгон дамжуулсан.

Курсор гүйж байгаа бүрэлдэхүүн хэсгийн Зүүн ба Дээд шинж чанаруудтай ажиллана. Би энгийн жишээ хэлье. Маягт дээр Memo бүрэлдэхүүн хэсгийг байрлуулж, Align шинж чанарыг нь alTop болгож тохируулна уу. Маягт дээр самбар байрлуулж, Align шинж чанарыг alTop болгож, Height шинж чанарыг 6 эсвэл 7 пиксел гэх мэт жижиг утгаар тохируулна уу. DragMode-г dmAutomatica, DragCursor-г crVSplit-д тохируулна уу. Өөр Memo бүрэлдэхүүнийг байрлуулаад Align-г alClient-д тохируулна уу. Санамжийг хоёуланг нь, самбараас сонгоод, доор үзүүлсэн шиг нийтлэг OnDragOver үйл явдлын зохицуулагчийг үүсгэ.

HTML Drag and Dropинтерфэйсүүд нь програмуудыг хөтчүүдэд чирэх, буулгах функцийг ашиглах боломжийг олгодог.Хэрэглэгч сонгож болно чирэх боломжтойхулганаар элементүүдийг чирнэ үү унах боломжтойэлементийг сонгоод хулганы товчийг суллаж хая. -ийн тунгалаг дүрслэл чирэх боломжтойЧирэх ажиллагааны үед элементүүд нь заагчийг дагадаг.

Вэб сайтууд, өргөтгөлүүд болон XUL програмуудын хувьд аль элемент болж болохыг өөрчлөх боломжтой чирэх боломжтой, санал хүсэлтийн төрөл чирэх боломжтойэлементүүдийг үүсгэдэг ба унах боломжтойэлементүүд.

HTML Drag and Drop-ийн энэхүү тойм нь интерфэйсүүдийн тодорхойлолт, аппликешн дээр чирэх, буулгах дэмжлэгийг нэмэх үндсэн алхмууд, интерфэйсүүдийн харилцан ажиллах байдлын хураангуйг агуулдаг.

Үйл явдлыг чирэх

үйл явдал Үйл явдал зохицуулагч дээр Гал асаах үед…
чирэх ondrag …а чирсэн зүйл(элемент эсвэл текстийн сонголт) чирсэн байна.
dragend ondragend … чирэх үйлдэл дуусна (хулганы товчлуурыг суллах эсвэл Esc товчийг дарах гэх мэт. Чирэх ажлыг дуусгах хэсгийг үзнэ үү.)
луужуулагч ondragenter …чирсэн зүйл хүчинтэй буулгах зорилт руу ордог. (Унах зорилтуудыг тодорхойлохыг үзнэ үү.)
dragexit ondragexit …элемент нь чирэх үйлдлийн шууд сонгох зорилт байхаа больсон.
чирэх ondragleave …чирсэн зүйл нь хүчинтэй буулгах зорилт үлдээдэг.
луучин ondragover …чирсэн зүйлийг хүчинтэй буулгах зорилтот дээр хэдэн зуун миллисекунд тутамд чирж байна.
чирэх ondragstart …Хэрэглэгч нэг зүйлийг чирж эхэлнэ. (Чирэх үйлдлийг эхлүүлэхийг үзнэ үү.)
унах унах ... хүчинтэй буулгах зорилт дээр зүйл унасан. (Дусал хийх хэсгийг үзнэ үү.)

Жич:Файлыг үйлдлийн системээс хөтөч рүү чирэх үед dragstart эсвэл dragend үйл явдлуудыг ажиллуулдаггүй.

Интерфейсүүд

Үндсэн зүйл

Энэ хэсэг нь аппликешн дээр чирэх, буулгах функцийг нэмэх үндсэн алхмуудын хураангуй юм.

юу болохыг тодорхойлох чирэх боломжтой

Элемент хийх чирэх боломжтойДараах кодын жишээнд үзүүлсэн шиг draggable шинж чанар болон ondragstart глобал үйл явдлын зохицуулагчийг нэмэх шаардлагатай:

Энэ элементийг чирэх боломжтой.

Дэлгэрэнгүй мэдээллийг үзнэ үү:

уналтыг зохицуулах нөлөө

Унах үйл явдлын зохицуулагч нь чирсэн өгөгдлийг програмын тусгай аргаар боловсруулахад үнэ төлбөргүй байдаг.

Ихэвчлэн аппликейшн нь чирсэн зүйлсийг авахын тулд getData() аргыг ашигладаг бөгөөд дараа нь тэдгээрийг зохих ёсоор боловсруулдаг. Нэмж дурдахад, хэрэглээний семантик нь утгаас хамаарч өөр өөр байж болно

Технологийн хэрэглээ чирэх, буулгах (чирэх, буулгах) нь хэрэглэгчдэд янз бүрийн объектыг нэгээс нөгөө рүү шилжүүлэх, жишээлбэл, нэг жагсаалтын элементүүдийг нөгөө рүү шилжүүлэх боломжийг олгодог. Үүнийг хийхийн тулд та угаалтуур ба эх үүсвэр гэсэн хоёр хяналтыг ашиглах хэрэгтэй. Хүлээн авагч нь эх объектыг (хөдлөх объект) хүлээн авах объект юм.

Объектуудын хөдөлгөөний явцад тохиолдох үйл явдлуудыг дарааллаар нь доор жагсаав.

OnStartDrag(TStartDragEvent гэж бичнэ үү) - үйл ажиллагааны эхэнд эх объект үүсгэсэн. Үйл явдал зохицуулагч руу дамжуулсан параметрүүд: DragObject хүлээн авагч объект (TDragObject төрөл), Source объект (TObject төрөл).

OnDragOver(TDragOverEvent төрөл) - дээр нь хөвөгч объектыг байрлуулах үед зорилтот объект үүсгэдэг. Үйл явдал зохицуулагч руу дамжуулсан параметрүүд: Илгээгч хүлээн авагчийн объект (TObject төрөл), Эх сурвалжийн объект (TObject төрөл), төлөвийн хөдөлгөөний төлөв (TDragState төрөл), X ба Y (бүхэл тоон төрөл) - хулганы заагчийн одоогийн координат, Зөвшөөрөх (логийн төрөл) ) зөөх үйлдлийг баталгаажуулах тэмдэг. Хөдөлгөөний төлөв нь хөдөлж буй объект нь хүлээн авагчийн хэсэгт байгаа эсэх, дотор нь хөдөлж байгаа эсэх, түүнийг орхисон эсэхийг тодорхой болгодог. Дамжуулсан параметрүүд нь хүлээн авагч объектыг эх объектыг хүлээн авах эсвэл татгалзах боломжийг олгодог. Зөөх үйлдлийг зөвшөөрсөн тохиолдолд Accept параметрийг Trye, эсрэгээр False гэж тохируулна.

onDragDrop (TDragDropEvent төрөл) - Чирэх объектыг түүн дээр буулгах үед очих объектоос дээш өргөгдөнө. Үйл явдал зохицуулагч нь хулганы заагч, Sender хүлээн авагч объект (TObject төрөл) болон эх Source хөдөлгөөний объектын (TObject төрөл) одоогийн координатыг дамжуулдаг.

onEndDrag (EndDragEvent төрөл) - Чирэх үйлдэл дуусах үед нэмэгдэнэ. Илгээгч эх объект болон Зорилтот хүлээн авагч объектыг үйл явдал зохицуулагч руу шилжүүлэх цэгийн X ба Y координатууд.

Drag and drop үүсгэхийн тулд DragMode шинж чанарыг dmAutomatic болгож тохируулсан OnDragDrop ба OnDragOver гэсэн хоёр үйл явдлыг хэрэгжүүлэхэд хангалттай. Үгүй бол зөөх үйлдлийн эхлэл болох BeginDrag аргыг программист кодлох ёстой.

Материалыг нэгтгэхийн тулд бид дараах програмыг бий болгоно. Маягт дээр Panel бүрэлдэхүүнийг байрлуул. Object Inspector-ийн DragMode шинж чанарыг dmAutomatic болгож тохируулна уу. Маягтын объектыг сонгоод Объект шалгагч ашиглан дараах үйл явдлуудыг үүсгэнэ үү.

Процедур TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); Эхлэх бол Source = Panel1 бол Зөвшөөрөх:= Үнэн бол Зөвшөөрөх:= Худал; Төгсгөл; процедур TForm1.FormDragDrop(Илгээгч, Эх сурвалж: TObject; X, Y: Бүхэл тоо); beginPanel1.Left:=X; Panel1.Top:=Y; Төгсгөл;

Одоо програмыг ажиллуулаад самбар дээрх хулганы товчийг дарснаар бид самбарын объектыг маягтын туршид зөөж болно.

Дүгнэлт: бид технологитой танилцсан чирэх, буулгах(чирж буулгах) ба практикт ашигласан.