ПредишенСледващото

Трансфер Interface плъзгане и пускане

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

За механизма на работа, която искате да коригирате съответно две контроли. Човек трябва да бъде източник (Source), а вторият - приемник (Target). Източникът няма да се движат, но регистрирани като такива в механизма.

Забележка:
А контролен елемент може да бъде едновременно на източника и приемника.

Потребителят поставя на показалеца на мишката върху контрола, натиска левия бутон на мишката и без да го освобождава, започва да преместите курсора на втория елемент. Когато този елемент на потребителят освободи бутона на мишката. В този момент, се извършва в съответствие с разработчика на действието. При което първият управляващ елемент е източник, а вторият - на приемника.

Както можете да видите, можете да мислите за много приложения, влачене и пускане механизъм. Неговата универсалност се дължи на факта, че тя е само средство за свързване на двата компонента с показалеца на мишката. А конкретно съдържание зависи само от въображението на програмист и задачи.

Целият механизъм на плъзгане и пускане се осъществява в TControl базов клас, който е майка на всички контроли. Помислете за същността на механизма.

Всяко устройство за управление на компонентите на палитри Delphi е източникът на механизма на плъзгане и пускане. Нейното поведение в началния етап на прехвърлянето зависи от свойствата

Значение dmAutomatic компонент осигурява автоматичен отговор на натискане на левия бутон на мишката и плъзнете на върха - ако този механизъм се включва самостоятелно.

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

Параметър незабавно = True осигурява незабавен механизъм старт. Ако стойността е False механизъм се активира само когато курсорът се движи на разстояние определя параметър праг.

От включване на механизъм сигнализира мишката - той се променя курсора в определен имот

Отново на източника, когато преместване на курсора не се променя собствената си позиция и само в случай на успешно завършване на трансфера ще бъде в състояние да си взаимодействат с приемника.

Приемникът може да бъде всеки компонент, в който е създаден метод за манипулатор

Тя се извиква, когато преместите курсора режим плъзгане и пускане на този компонент. В манипулатор метод може да бъде осигурена чрез селекция на желаните източници атрибути трансфер.

Ако опцията е настроена да приема до Вярно е, този компонент се превръща в приемник. източник трансфер Източник определен параметър. С тази опция печалби за програмисти достъп до свойствата и методите на източника. Сегашната позиция на курсора зададете параметрите X и Y. Параметърът състояние връща информация за движението на мишката:

dsDragEnter - показалецът се появява над компонента; dsDragLeave - показалка левия компонент; dsDragMove - движи курсора на компонента.

Приемникът включва извършване на някои действия, в случай завършване на предаването на властта върху него. За да направите това, методът на манипулатор използва

което се причинява, когато освободите левия бутон на мишката върху компонент приемник. Достъп до източника и приемника да осигурите източника и подателите параметри съответно. мишка координира параметри връщане X и Y.

След приключване на прехвърляне на контрола - мощност - получи съобщение, че се обработва от

Параметрите на източника на светлина и определят Sender и Target, съответно. мишка координати определя от параметрите X и Y. на

метод EndDrag източник може да се използва за програмиране на стоп трансфер (при нормална работа завършване от страна на потребителя не се използва):

Параметър Drop = True завършва прехвърлянето. Фалшиви стойност анулира трансфера.

Обявата 27.1. Раздел изпълнение на основната форма DemoDragDrop проект на модула

и се включва механизмът за прехвърляне. От DragMode имот за Edit1 значение dmManual, а след това на компонента без проблеми осигурява текст фокус и редактиране.

метод EditiEndDrag осигурява показване на информация за изпълнението на преместването на източника.

Приемник методи манипулатор определени за Edit2 компонент. метод Edit2DragOver проверява класа източника и активира или деактивира рецепция.

метод Edit2DragDrop извършва прехвърляне на текст от източника към приемника.

Моля, имайте предвид, че и двете TEdit компонент са източниците, така и дестинации. За тази цел, всяка една от тях използва различни методи за манипулатори. А методи източник конфигурирани за обработка на собственика като клас пример TEdit.

Формата, приемника плъзгане и пускане, Panel2 движи на панела, която действа като източник. метод FormDragOver забранява всички компоненти, с изключение на панелите. метод FormDragDrop извършва компонент преместване.

Панелът не разполага с методите си манипулатор, т. За. DmAutomatic работи във времето и не изисква допълнителна обработка трансфер е завършена.

Подкрепете проекта - споделете линка, благодаря!