Блог Александра Божко
Архивы
Рубрики
Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Одним из новшеств FireMonkey в XE7 стал компонент TMultiView. По сути это некая панель, которая может вести себя по разному, в зависимости от устройства, на котором запускается приложение. Она может “всплывать, “выпадать”, оставаться закрепленной и т.д. В мобильных приложениях такие панели практически повсеместно используются для организации представления Master-Details, поэтому такой компонент был, что называется, необходим. До выхода XE7 я видел как минимум три реализации чего-то подобного, хотя и менее универсального.

Вчера в процессе перевода своего рабочего приложения на XE7, я попытался разобраться с этим компонентом. Для того, что бы понять как он работает лучше всего создать новое Multi-Device приложение и использовать шаблон Master-Detail.

NewMultiDeviceApplication

В XE7 данный шаблон уже содержит предварительно настроенный экземпляр данного компонента, расположенный слева на форме. TMultiView имеет несколько ключевых свойств, определяющих его поведение. Прежде всего, это свойство Mode.

    property Mode: TMultiViewMode read FMode write SetMode default TMultiViewMode.PlatformBehaviour;

 Именно это свойство определяет поведение компонента – будет ли это обычная панель, либо она будет выезжающей или выпадающей. Свойство может принимать следующие значения:

TMultiViewMode = (PlatformBehaviour, Panel, Popover, Drawer, Custom);

По умолчанию значение PlatformBehaviour, т. е. его поведение определяется платформой. Что бы понять как будет вести себя компонент при изменении значения этого свойства, вы можете сделать небольшой эксперимент. Поместите на форму компонент TComboBox (я предварительно удалил в шаблонном приложении все контролы, предназначенные для отображения данных). Свойство Items определите следующим образом:

PlatformBehaviour

Panel

Popover

Drawer

Custom

Задайте следующий обработчик события OnChange:

MultiView1.Mode:= TMultiViewMode(cbMode.ItemIndex);

Теперь при выборе элемента выпадающего списка будет меняться значение свойства Mode. Под Windows компонент может выглядеть так:

MultiViewProper

Или так (панель “выезжает”):

MultiViewDrawer

Свойство компонента MasterButton указывает на тот компонент, который будет инициировать появление или скрытие панели. Вы можете так же указать значение свойства TargetControl. Это может быть панель или другой компонент контейнер. Так или иначе, состояние MultiView будет отражаться на свойствах компонента, выбранного в качестве TargetControl. На приведенных ниже рисунках видно как изменяется TargetControl при выпадании панели компонента MultiView. За изменение цвета отвечает свойство ShadowOptions.

MultiViewTargetControl2

MultiViewTargetControl1

Собственно, ничего особо сложного в использовании компонента нет. К тому же, в комплекте Delphi XE7 поставляется демонстрационный пример.

 


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Продукты DevArt
Купить онлайн:



Читай русскоязычные Delphi блоги
Каталог блогов Blogdir.ru
Яндекс.Метрика