Разумевање операција повлачења и испуштања у Делфима

„Превуци и испусти“ значи да задржите тастер компјутерски миш дугме док се миш помера, а затим отпустите тастер да испустите предмет. Делпхи олакшава програмирање превлачења и испуштања у апликације.

Можете заиста да превучете и испустите од / до где год желите, као што је из једног обрасца у други или из Виндовс Екплорера у вашу апликацију.

Пример повлачења и испуштања

Покрените нови пројекат и на образац ставите једну контролу слике. Користите Објецт Инспецтор за учитавање слике (Својство слике), а затим подесите ДрагМоде власништво дмМануал. Направит ћемо програм који ће омогућити помицање времена извођења ТИмаге контроле помоћу техника повлачења и испуштања.

ДрагМоде

Компоненте омогућавају две врсте превлачења: аутоматско и ручно. Делпхи користи својство ДрагМоде да контролише када корисник може превући контролу. Подразумевана вредност ове особине је дмМануал, што значи да повлачите компоненте око пријава није дозвољена, осим у посебним околностима, за које морамо написати одговарајући код. Без обзира на поставку за својство ДрагМоде, компонента ће се померати само ако је исправан код написан да би је репозиционирао.

instagram viewer

ОнДрагДроп

Догађај који препознаје повлачење и испуштање назива се ОнДрагДроп догађајем. Користимо га да одредимо шта желимо да се догоди када корисник спусти објект. Стога, ако желимо да преместимо компоненту (слику) на нову локацију на обрасцу, морамо написати код за обрађивач догађаја ОнДрагДроп догађаја.

Изворни параметар догађаја ОнДрагДроп је објект који се баца. Тип изворног параметра је ТОбјецт. Да бисмо приступили његовим особинама, морамо га бацити на одговарајући тип компоненте, што је у овом примеру ТИмаге.

Прихвати

Морамо користити ОнДрагОвер догађај форме да сигнализира да образац може прихватити ТИмаге контролу на коју желимо да убацимо. Иако Прихвати параметар подразумевано је Труе, ако није достављен програм за обраду догађаја ОнДрагОвер, контрола одбија вучени објект (као да је параметар Аццепт промењен у Фалсе).

Покрените свој пројекат и покушајте да превучете и испустите слику. Имајте на уму да слика остаје видљива на оригиналном месту током превлачења показивач миша се помера. Не можемо користити поступак ОнДрагДроп да компоненту учинимо невидљивом док се повлачење врши јер се овај поступак позива тек након што корисник испусти објект (ако уопште постоји).

ДрагЦурсор

Ако желите да промените слику курсора приказану током повлачења контроле, користите својство ДрагЦурсор. Могуће вриједности за својство ДрагЦурсор исте су као и за својство Цурсор. Можете користити анимиране курсоре или било шта што желите, попут БМП датотеке слике или датотеке курсора ЦУР.

БегинДраг

Ако је ДрагМоде дмАутоматиц, повлачење започиње аутоматски када притиснемо тастер миша са курсором на управљачкој јединици. Ако сте вредност својства ДрагМоде ТИмаге оставили на заданом дмМануал, морате користити методе БегинДраг / ЕндДраг да бисте омогућили повлачење компоненте. Чешћи начин повлачења и испуштања је постављање ДрагМоде на дмМануал и покретање превлачења руковањем догађајима са мишем према доле.

Сада ћемо искористити Цтрл + МоусеДовн комбинација тастатуре како би се омогућило повлачење. Комплет ТИмагевратите ДрагМоде на дмМануал и напишите МоусеДовн обрадник догађаја овако:

БегинДраг узима боолеов параметар. Ако пређемо Труе (као у овом коду), повлачење почиње одмах; ако је лажно, не почиње док не помакнемо миш на малу удаљеност. Запамтите да је за то потребан Цтрл тастер.

instagram story viewer