
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Топ:
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Интересное:
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Дисциплины:
![]() |
![]() |
5.00
из
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
отпускания клавиши мыши.
§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.
|
|
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
© cyberpedia.su 2017-2025 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!