Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Топ:
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Интересное:
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Дисциплины:
|
из
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.
|
|
|
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!