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

Создание Dockable формы


Sergey S

Вопрос

Добрый день.

Заказчик высказал пожелание, чтобы вкладки TabControl вели себя как в Google Chrome. Т.е. пользователь мог, потянув за вкладку мышью, "отстегнуть" ее и сделать полноценным окном. Потом, если что, сделать окно обратно вкладкой.

Под VCL это делается очень просто и элегантно, но вот под FMX я такой возможности не нашел.:((( Вернуться обратно к VCL возможности нет, т.к. заказчик требует кроссплатформенность (Win/Linux).

Может кто-то знает, возможно ли это сделать? Буду очень признателен за помощь.

Спасибо.

Ссылка на комментарий

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

  • 0
В 01.10.2023 в 19:01, Sergey S сказал:

Добрый день.

Заказчик высказал пожелание, чтобы вкладки TabControl вели себя как в Google Chrome. Т.е. пользователь мог, потянув за вкладку мышью, "отстегнуть" ее и сделать полноценным окном. Потом, если что, сделать окно обратно вкладкой.

Под VCL это делается очень просто и элегантно, но вот под FMX я такой возможности не нашел.:((( Вернуться обратно к VCL возможности нет, т.к. заказчик требует кроссплатформенность (Win/Linux).

Может кто-то знает, возможно ли это сделать? Буду очень признателен за помощь.

Спасибо.

Не совсем до конца понимаю задачу, но я бы попробовал через клонирование компонента, и привязывание его к другому родителю, либо через фреймы.

Ссылка на комментарий
  • 0

Через фреймы у меня сделано сейчас.

Перекинуть фрейм с вкладки на вновь созданную форму - не проблема, проблема в другом. Каким образом сделать так, чтобы это происходило как в браузере Google Chrome, когда пользователь тянет за ярлык вкладки. И обратно, когда дочернее окно расположено над областью ярлыков вкладок, фрейм обратно переносится на закладку TabControl, а окно уничтожается. В VCL это все реализовано "из коробки", в FMX - нет.:(( Сейчас оба этих действия у меня выполняются после нажатия на кнопки, заказчик требует по сути режим D&D, но в в TabControl он какой-то...:((( Весь TabControl мне тянуть не надо, а если включить его для отдельных закладок, они нажиматься перестают.

Ссылка на комментарий
  • 0

ничего там не из коробки.

и в хроме тоже сами писали) 

TabControl в чистом виде много чего не поддерживает.

Зато поддерживает главное - можно табы убрать вообще. И над ним сделать панель, которая будет вести себя как угодно, в том числе анимированно раздвигая элементы во время Drag Over

А после дропа выстроить табы. или фреймы, или что угодно. вообще не проблема

Ссылка на комментарий
  • 0
20 минут назад, krapotkin сказал:

я так понимаю, вопрос упирался в красивый драг, а не способ отсоединить таб от родителя ?

Ну я судил поэтому 

23 часа назад, Sergey S сказал:

Каким образом сделать так, чтобы это происходило как в браузере Google Chrome, когда пользователь тянет за ярлык вкладки. И обратно, когда дочернее окно расположено над областью ярлыков вкладок, фрейм обратно переносится на закладку TabControl,

Если нет, то тут только как написали вы, делать все самому, хотя я думаю накрутить и в TabControl можно красивостей)

Ссылка на комментарий
  • 0
44 минуты назад, krapotkin сказал:

ничего там не из коробки.

Ну, по крайней мере ничего сверхсложного. Изменяем свойство DragKind у Dockable формы и свойство DockSite у PageControl. Получаем нужный функционал, заказчик доволен. Если бы не Linux, по я бы сделал на VCL все и вопрос закрылся бы, но...:(

47 минут назад, krapotkin сказал:

Зато поддерживает главное - можно табы убрать вообще. И над ним сделать панель, которая будет вести себя как угодно, в том числе анимированно раздвигая элементы во время Drag Over

А после дропа выстроить табы. или фреймы, или что угодно. вообще не проблема

Если бы Вы примерчик маленький дали, как так сделать. Я был бы безмерно счастлив.

 

39 минут назад, OnePeople сказал:

Написал за 5 минут для примера как можно

 

Спасибо Вам большое! Если позволите, 2 вопроса:

1. Есть ли возможность сделать, чтобы после драга вкладки форму сразу можно было перетаскивать на нужное место?

2. Каким образом форму корректно вернуть (с помощью драга) обратно закладкой на TabControl?

38 минут назад, krapotkin сказал:

я так понимаю, вопрос упирался в красивый драг, а не способ отсоединить таб от родителя ?

Совершенно верно. Заказчик просит сделать, как в Хроме (да еще кроме Win, чтобы под Linux все работало).

Ссылка на комментарий

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...