Где Sender - отправитель, Target - указатель на объект-получатель или Mil, если перенос закончился неудачно; X, Y - координаты курсора в момент — КиберПедия 

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Где Sender - отправитель, Target - указатель на объект-получатель или Mil, если перенос закончился неудачно; X, Y - координаты курсора в момент

2018-01-04 167
Где Sender - отправитель, Target - указатель на объект-получатель или Mil, если перенос закончился неудачно; X, Y - координаты курсора в момент 0.00 из 5.00 0 оценок
Заказать работу

отпускания клавиши мыши.


 

§4.9. Механизм причаливания

В Delphi введена поддержка специального механизма Drag&Dock (перетащи и причаль), посредством которого можно причалить мышкой компонент в новое место. В механизме Drag&Dock участвуют два компонента: принимающий компонент (всегда потомок TWnControl) и причаливаемый компонент (потомок класса TControl). Принимающий (оконный) компонент имеет свойство DockSite, установленное в True, оно делает компонент контейнером- приемником в рассматриваемом механизме.

Поскольку причаливание является частью более общего механизма перетаскивания, в класс TControl введено дополнительное свойство, благодаря которому различаются способы использования мыши. В компонентах, которые могут выступать клиентами в механизме Drag&Dock, надо установить свойство DragKind в dkDock. TDragKind = (dkDrag, dkDock);

property DragKind: TDragKind read FDragKind write FDragKind

default dkDrag;

Количество установленных на форме причаливаемых компонентов (у которых DragKind=dkDock и DockSite=False) определяется свойством DockClientCount, а их список хранится в свойстве-массиве DockClients.

Для реализации причаливания в класс TControl введены следующие свойства.

Свойство AutoSize разрешает (true) или запрещает оконному компоненту менять свои размеры в зависимости от количества и размеров содержащихся в

нем дочерних компонентов.

property AutoSize: Boolean read FAutoSize write SetAutoSize

default False;

Неоконные компоненты могут не только причаливаться к оконным элементам, но и покидать их. После «отчаливания» неоконные элементы автоматически оказываются в окне, тип которого содержит свойство FloatingDockSiteClass. По умолчанию это окно содержит уменьшенный по высоте заголовок и системную кнопку закрытия, property FloatingDockSiteClass: TWinControlClass

read GetFloatingDockSiteClass write "FloatingDockSiteClass;

В свойстве DockOrientation можно установить (получить) ориентацию, которую будет иметь «причаливаемый» компонент в окне родителя TDockOrientation = (doNoOrient, doHorizoxital, doVertical), property DockOrientation: TDockOrientation read FDockOrientatiori

write FDockOrientation; doNoOrient - сохраняется исходная ориентация перемещаемого компонента; doHorizontal - компонент будет иметь горизонтальную ориентацию; doVertical - компонент будет иметь вертикальную ориентацию.

С помощью свойств LRDockWidth и TBDockEeight можно соответсвенно получить ширину последнего перемещенного компонента.

расположившегося горизонтально, или высоту последнего перемещенного

компонента, расположившегося вертикально, property LRDockWidth: Integer read GetLRDockWidth

write FLRDockWidth; property TBDockHeight: Integer read GetTBDockHeight

writ© FTBDockHeight; Свойства UndockHeight и UndockWidth определяют высоту и ширину последнего «отчалившего» компонента.

property OndockHeight: Integer read GetOndockHeight

write FUndockHeight; property OndockWidth: Integer read GetOndockWidth

write FUndockWidth;

Свойство Constraints с помощью объекта TSizeConstraints накладывает ограничения на возможные размеры причаливаемого компонента, property Constraints: TSizeConstraints read FConstraints

write SetConstraints;

Механизм Drag&Dock обслуживается следующими событиями. Для прини­мающего компонента:

· Событие OnGetSitelnf о возникает в момент начала перетаскивания и по­вторяется непрервно в процессе перетаскивания. Обработчик этого события дол­жен сообщить объекту TDragDockObject, который автоматически связывается с причаливаемым объектом, некоторую дополнительную информацию (размеры, которые будет иметь этот объект, будет ли он погружен в «плавающее» окно и т.п.).

property OnGetSitelnfо: TGetSitelnfoEvent read FOnGetSitelnfo

write FOnGetSitelnfo; TGetSitelnfoEvent = procedure(Sender: TObject; DockClient: TControl;

var Inf luenceRect: TRect; MousePos: TPoint; таг CanDock: Boolean) of object; где DockClient - перетаскиваемый объект;

InfluenceReet - прямоугольник рамки перетаскиваемого объекта; MousePos - положение курсора мыши; CanDock - разрешение перетаскивать.

· Событие OnDoekOver аналогично OnDragOver, оно возникает и повторяет­ся, когда компонент-клиент перемещается над компонентом-приемником. Воз­вращаемый параметр Accept установленный в false определяет, что данный оконный компонент не принимает перетаскиваемый компонент.

property OnDoekOver: TDockOverEvent read FOnDockOver

write FOnDockOver; TDockOverEvent = procedure(Sender: TObject; Source: TDragDockObject;

X. X: Integer; State: TDragState; var Accept: Boolean) of object;

· Событие OnDockDrop аналогично OnDragDrop, оно возникает в момент оконачания перетаскивания клиента над приемником. Этот обработчик позволяет разместить клиента Source тем или иным образом, в зависимости от его имени, типа, местоположения.

 


 

property OnDockDrop: TDockDropEvent read POnDockDroi,

write FOnDockDrop;

4. Событие OnUnDock возникает при отчаливании компонента. Обработчик этого события должен поместить в свойство Allow значение true, если компонент может покинуть границы своего владельца Sender.

property OnUnDock: TUnDockEvent read FOnUnDock write FOnUnDock; TUnDockEvent = procedure(Sender: TObject; Client: TControl;

NewTarget: TWinControl; var Allow: Boolean) of object; где, Client - компонент, который был клиентом; NewTarget - новый приемник;

Allow - определяет, можно ли перетащить клиента из приемника.

Все указанные события обрабатываются автоматически, если оба компонента содержат значение dmAutomatic в своем свойстве DragMode.


Поделиться с друзьями:

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

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.011 с.