Перейти к содержанию
Fire Monkey от А до Я
  • 0

Шторка TMultiView залезает на Toolbar


krapotkin

Вопрос

Опубликовано

XE8 Upd1

форма с мульти-вью

наверху - TToolBar

в шторке - комбо-бокс

черное поле - панель, в которую загружаются фреймы в зависимости от выбора в комбо

применен стиль*

Dbzb2R0E.png

 

когда шторка выезжает, она почему-то захватывает пространство тул-бара, ну да бог с ним, не страшно

Dbzb2R0H.png

 

хуже то, что когда она вернулась, тулбар остался изгажен

Dbzb2R0G.png

 

я пробовал toolbar.Repaint, toolbar.RecalcSize, multiView.RecalcSize

не помогло

Как исправить?

 

*если убрать стили, поведение не меняется

Рекомендуемые сообщения

  • 0
Опубликовано

TPanel  - черное поле на скриншоте

 

вышел из положения - тулбар забросил в эту панель

 

судя по тому, что у мультивью нет свойства Align - он на такие штуки совсем не рассчитан...

  • 0
Опубликовано

судя по тому, что у мультивью нет свойства Align - он на такие штуки совсем не рассчитан...

Ну почему... вместо Align есть DrawerOptions.Placement и SplitViewOptions.Placement.

 

Крайне странно - у меня приложение 1:1 такого же построения, и никаких проблем с MultiView не было. Ну, за исключением, когда я забыл переназначить TargetControl и MasterButton.

А пример из Documents\Embarcadero\Studio\xxx\Samples\Object Pascal\Mobile Samples\User Interface\MultiView\ не пробовали запускать?

  • 0
Опубликовано

Пардон... я сужу со своей колокольни, у меня XE7 Upd1. Не обратил внимание сразу на версию...

  • 0
  • Администраторы
Опубликовано

По идеи если вы хотите, чтобы у вас тулбар распологался сверху относительно всего остального, то TMultiView и TargetControl должны лежат в отдельном контейнере. Например так:

post-1-0-23948400-1436453085_thumb.png

Потому что TMultiView в режиме Drawer распологается в ручную относительно своего родителя. На моем примере Drawer будет вытянут по высоте Layout1. Если же TMultiView лежит на форме, то он будет растягиваться по высоте формы.

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...