Технологията на плъзгане и пускане изпълнение на въздушно съпротивление - dropvvcl

DragDrop ( «плъзнете & капка") - това е един от начините за обмен на данни между приложения. Този метод обмен използва от много софтуерни приложения. Например, много често го преместите файлове и папки.







Библиотеката на визуалните компоненти - VCL приложат своя собствена версия на DragDrop - технология, която позволява предаване и приемане на всякакъв контрол в рамките на една и съща форма. С тази домашна употреба VCL не се отнася до операционната система, въпреки че организацията на комуникацията на различни приложения ще трябва да използвате съответната функция API Windows.

Един потребител кликнете върху левия бутон на мишката, плъзнете елементите за управление може (обект - източник) към друг елемент (обектно-приемник). Когато плъзгане и пускане на едно събитие, което трябва да се справят с програма (събитие получателят е елемент, върху което курсора на мишката). Компонент имот DragModeotvechaet за участието им в процеса на обмен на данни.

DragMode = dmAutomatic - Събития се задействат автоматично, програмист пише само кодове, съответстващи обработват събитие.

DragMode = dmManual - всички обаждания към програмистът трябва да се организира.

Събитията, които се появяват, когато плъзгате

OnDragOver събитие се случва по време на движение на курсора на мишката върху обектно-приемник, а когато бутонът се отпусне на мястото.







Sender- приемник обект (курсорът е над него);

X, Y- координати на мишката в областта на клиент на системата за подателя обект;

Държавно състояние (има една от трите znacheniydsDragEnter- мишката се появява над елемента; dsDragMovekursor движи над елемента; dsDragLeave- курсор е оставил от елемент или елемент върху отпускането на бутона).

Accept- Булева. Тази променлива манипулатор трябва да върне решението си да приеме или да отхвърли obektSource.

Например, Знакът компонент клас (Наименование = Label1) трябва да приемат само компоненти klassaShape (геометрични форми), след това ще съдържа процесор извършва от източник обект (Източник):

анулира __fastcall TForm1 :: Label1DragOver (TObject * Sender, TObject * Източник,

вътр X, вътр Y, TDragState членка, булев Приеми)

OnDragDrop събитие се случва, когато се освободи левия бутон на мишката върху елемента, готов да получава. Неговата parametrySender, Източникът, XiYimeyut същото значение като това на предишното събитие. Съдържанието на този процесор, зависи от това, което функции на програмиста позволява на потребителя да изпълнява с плъзгане. Това може да е промяна в местонахождението на обекти, на обмена на информация и т.н.

В следващия пример, няма физическо движение на обектите; Label1 компонент получава указател към премества обект (геометрична фигура) и чете стойностите на имотите (височина, ширина) за изчисляване на формата на периметъра. Резултатът от изчислението се поставя в Label1 -> надпис.

нищожен __fastcall TForm1 :: Label1DragDrop (TObject * Sender,

TObject * Източник, вътр X, вътр Y)

поплавък р, пи = 3.14; Int т, Н, R, D;

w = ((TShape *) Източник) -> Ширина;

D = W; ако (D> з) D = Н;

превключвател (((TShape *) Източник) -> форма)