Рабочие листы
к вашим урокам
Скачать
1 слайд
Интерфейс Drag&Drop
2 слайд
Содержание
Основные технологические принципы ОС Windows
Возможности интерфейса Drag&Drop в Delphi
Участники операции Drag&Drop
Этапы операции Drag&Drop
Свойства компонентов, участвующих в операции Drag&Drop
События компонентов, участвующих в операции Drag&Drop
Методы компонентов, участвующих в операции Drag&Drop
3 слайд
Основные технологические принципы ОС Windows
Plug and Play
Point and Click
Drag and Drop
WYSIWYG (What You See Is What You Get )
Технология OLE (Object Linking and Embedding )
Объектно-ориентированная технология.
Оконная технология
4 слайд
Возможности интерфейса Drag&Drop в Delphi
позволяет компонентам обмениваться данными путем «перетаскивания» их мышью
объекты можно перемещать в пределах формы или в другую прикладную программу
5 слайд
Участники операции
источник (или перемещаемый объект). Источником может быть элемент управления (кнопка, изображение, метка и т. д.) или выбранная часть какого-либо объекта (например, строка из TListBox);
приемник (объект, на который будет опущен источник). Приемником может быть любой элемент управления.
6 слайд
элемент управления
Элемент интерфейса — примитив графического интерфейса пользователя, имеющий стандартный внешний вид и выполняющий стандартные действия.
7 слайд
Этапы операции Drag&Drop
Начало перетаскивания.
Проверка готовности приемника принять перетаскиваемый объект.
Сбрасывание перетаскиваемого объекта (источника).
Окончание процесса перетаскивания
8 слайд
Свойства компонентов, участвующих в операции Drag&Drop
[1] DragMode: TDragMode;
TDragMode может быть:
dmManual
dmAutomatic
определяет, как будет выполняться весь комплекс действий, связанных с Drag&Drop.
9 слайд
Если DragMode = dmManual, то все события перетаскивания должны определяться вручную (т. е. программистом по ходу выполнения программы). Перетаскивание начинается только после вызова специальных методов.
Если DragMode = dmAutomatic, то все события перетаскивания определяются автоматически, перетаскивание начинается сразу после нажатия кнопки мыши пользователем.
10 слайд
Свойства компонентов, участвующих в операции Drag&Drop
[2] DragCursor
определяет вид курсора в момент, когда над компонентом «перетаскиваются данные».
DragCursor= crDrag, если компонент готов принять данные (курсор принимает вид прямоугольника со стрелкой).
DragCursor= crNoDrag, если компонент не готов принять данные (курсор — перечеркнутый круг). Только в случае DragMode = dmAutomatic
11 слайд
События компонентов, участвующих в операции Drag&Drop
[1] OnStartDrag
Происходит в начале операции перетаскивания.
Возникает у перетаскиваемого объекта.
Не является обязательным для выполнения. Операция перетаскивания может быть произведена и без обработки этого события.
Не все компоненты генерируют данное событие.
Заголовок обработчика события :
procedure TForm1.<имя_компонента>StartDrag (Sender: TObject; var DragObject: TDragObject);
Параметры:
Sender - содержит информацию о перетаскиваемом объекте.
DragObject - используется для того, чтобы определить вид курсора или вид рисунка при перетаскивании объекта.
От этого параметра процедура получает информацию об объекте, создаваемом данным событием
12 слайд
События компонентов, участвующих в операции Drag&Drop
[2] OnDragOver
Проверка готовности приемника принять перетаскиваемый объект
Возникает в момент перемещения указателя мыши «с грузом» над компонентом.
Заголовок обработчика:
procedure TForm1.<имя_компонента>DragOvег (Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
13 слайд
События компонентов, участвующих в операции Drag&Drop
[2] OnDragOver
Параметры:
Sender указывает на компонент, над которым перемещается объект.
Source содержит информацию о компоненте — отправителе груза.
X и Y координаты указателя мыши, выраженные в пикселях относительно компонента Sender.
State указывает состояние перемещаемого объекта относительно Sender.
TDragState = (dsDragEnter, dsDragLeave, dsDragMove);
dsDragEnter показывает, что Source только что появился над Sender.
dsDragLeave, Source только что покинул Sender либо была отпущена кнопка мыши.
dsDragMove Source перемещается над Sender
14 слайд
События компонентов, участвующих в операции Drag&Drop
[2] OnDragOver
Параметры:
Accept сообщает, готов ли Sender принять перетаскиваемые данные.
Если Accept имеет значение True, то Sender готов принять перетаскиваемый объект (если пользователь «сбросил» перетаскиваемый объект (отпустил кнопку мыши в данной точке), то приложение вызовет событие обработки операции по сбрасыванию объектов).
Значение False сообщает, что Sender не может принять перетаскиваемый объект (если пользователь отпустит кнопку мыши, то ничего не произойдет).
В обработчике OnDragOver события главное — определить значение параметра Accept.
15 слайд
События компонентов, участвующих в операции Drag&Drop
[3] OnDragDrop
Возникает если в обработчике события OnDragOver значение параметра Accept=True и Вы попытались сбросить объект.
возникает у компонента, на который объект был сброшен
в его обработчике необходимо выполнить все действия над перетаскиваемым объектом по «сбрасыванию»
Заголовок обработчика:
procedure TForm1.<имя_компонента>DragDrop (Sender, Source: TObject; X, Y: Integer);
Значения параметров этого обработчика события совпадают со значениями одноименных параметров обработчика события OnDragOver.
16 слайд
События компонентов, участвующих в операции Drag&Drop
[4] OnDragEnd
возникает при завершении перетаскивания (вне зависимости от того, приняты данные или нет)
возникает для перетаскиваемого объекта
также происходит при отмене перетаскивания
не является обязательным для выполнения. Операция перетаскивания может быть произведена и без обработки этого события.
не все компоненты генерируют данное событие.
17 слайд
События компонентов, участвующих в операции Drag&Drop
[4] OnDragEnd
Заголовок обработчика события:
procedure TForml.<имя_компонента>EndDrag (Sender, Target: TObject; X, Y: Integer);
Параметры:
Sender получает информацию о перетаскиваемом объекте.
Target содержит информацию об объекте, который получил данные.
Если перетаскиваемый объект не был принят, то Target= Nil объект.
X, Y — координаты указателя мыши в момент отпускания левой кнопки.
18 слайд
Методы компонентов, участвующих в операции Drag&Drop
[1] BeginDrag
применяется для того, чтобы начать операцию перетаскивания.
понадобится в случае, когда свойство DragMode перетаскиваемого объекта установлено в значение dmManual.
чтобы перетаскивание началось, необходимо инициализировать метод BeginDrag у объекта, который надо перетащить. Удобнее всего это делать при обработке событий мыши данного объекта.
19 слайд
Методы компонентов, участвующих в операции Drag&Drop
[1] BeginDrag
После применения метода с объектами будут происходить все те же события, рассмотренные выше для значения свойства DragMode, равного dmAutomatic.
Обычно вызов метода BeginDrag осуществляется в обработчике события OnMouseDown перетаскиваемого объекта.
пользователь сам должен позаботиться о проверке корректности начала операции перетаскивания, а именно, перетаскивание должно начинаться только при нажатии левой кнопки мыши (значение Button должно быть равно mbLeft).
20 слайд
Методы компонентов, участвующих в операции Drag&Drop
[1] BeginDrag
Описание
procedure BeginDrag(Immediate: Boolean; Threshold: Integer=-1);
Параметр Immediate
может принимать два значения.
True, перетаскивание начинается немедленно.
False, перетаскивание начинается при смещении курсора мыши в любом направлении на количество пикселей, определенное параметром Threshold. Лучше изначально Immediate = False, так как в этом случае можно обрабатывать нажатие кнопки мыши, не начиная операцию перетаскивания.
Для того чтобы начать процесс перетаскивания, можно просто в ходе программы в нужном месте присвоить свойству DragMode перетаскиваемого объекта значение dmAutomatic.
21 слайд
Методы компонентов, участвующих в операции Drag&Drop
[2] EndDrag
используется для того, чтобы остановить операцию перетаскивания, начатую вызовом метода BeginDrag.
procedure EndDrag(Drop: Boolean);
Drop=True, приводит к завершению операции перетаскивания и сбрасыванию объекта.
Drop=False отменяет процесс перетаскивания.
22 слайд
Выводы
Программирование операции Drag&Drop заключается в выполнения следующих действий:
инициализация метода BeginDrag перетаскиваемого объекта (источника), если значение его свойства DragMode равно dmManual;
создание обработчика события OnDragOver компонента-приемника, чтобы определить, где можно «сбрасывать» перетаскиваемый объект;
создание обработчика события OnDragDrop компонента-приемника, чтобы определить, какие действия должны выполняться при «сбрасывании» перетаскиваемого объекта;
создание обработчика события OnDragEnd компонента-источника.
Если два предыдущих шага необходимы для любой операции перетаскивания, то последний шаг выполняется лишь тогда, когда надо выполнить некоторые действия в исходном компоненте при завершении процесса перетаскивания.
Рабочие листы
к вашим урокам
Скачать
6 666 321 материал в базе
Настоящий материал опубликован пользователем Морозова Мария Александровна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт
Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.
Удалить материалВаша скидка на курсы
40%Курс профессиональной переподготовки
500/1000 ч.
Курс повышения квалификации
72/180 ч.
Курс профессиональной переподготовки
600 ч.
Курс профессиональной переподготовки
300/600 ч.
Мини-курс
4 ч.
Мини-курс
2 ч.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.