Форум программистов, компьютерный форум, киберфорум
C++ Builder: FireMonkey
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
19 / 19 / 4
Регистрация: 27.05.2013
Сообщений: 119

Форма в TabControl

08.07.2013, 13:08. Показов 2042. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пробую старое приложение перенести в FireMonky
Была такая схема. Динамически создавались разные формы и встраивались в TabControl при помощи ManualDock.
Можно ли и как сделать то же самое в FireMonky?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.07.2013, 13:08
Ответы с готовыми решениями:

Постоянно неактивная форма внутри TabControl'а.
Есть форма Form1. В нее помещен TabControl, в котором несколько TabPages. Внутрь TabPage я вызываю другую форму - Form2. Проблема...

Как в запросе обратиться к элементу форму, если форма находится внутри TabControl?
Есть главная форма. В ней таб контрол, внутри него подчин. форма. Как правильно записать запрос - примерно следующее: select ......

Создание TabControl в TabPage, а в этом TabControl создать RichTextBox
Нужно создать TextBox и кнопку,при нажатии на кнопку в уже созданом TabControl создаётся новая вкладка(ну TabPage)и в этой вкладке еще...

8
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33395 / 21505 / 8236
Регистрация: 22.10.2011
Сообщений: 36,902
Записей в блоге: 12
08.07.2013, 13:25
FireMonkey Q&A:
Q: Do you provide a docking/layout manager?
A: There are some layout management capabilities, but no pre-written docking system.
Придется играться с Parent-ом формы...
0
19 / 19 / 4
Регистрация: 27.05.2013
Сообщений: 119
08.07.2013, 14:22  [ТС]
в общем то цель динамически создавать типовые вкладки, содержащие определенный набор своих компонентов....
"выдернуть" вкладку в отдельное окно то уже такое.. можно обойтись. Туплю конкретно..

Добавлено через 19 минут
Наверно придется создавать ряд наследников от TabItem со своим функционалом...
0
19 / 19 / 4
Регистрация: 27.05.2013
Сообщений: 119
09.07.2013, 15:39  [ТС]
Методом тыка кое что есть.
Делаю так. Создаю форму, размещаю на ней Layout, далее все остальные компоненты.
Потом, "в главной" форме на которой TabControl, для создания вкладки пишу что то вроде:

C++
1
2
3
4
5
6
7
TabItem = new TTabItem(this);
TabItem->Text = "TAB";
TabControl1->AddObject(TabItem);
 
Form1 = new TForm1(this);//форма с требуемым Layout
TabItem->AddObject(Form1->Layout1);
TabControl1->ActiveTab = TabItem;
все компоненты Form1->Layout1, замечательно перемещаются на новую вкладку и работают.
Подскажите как вернуть Layout1 форме Form1?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33395 / 21505 / 8236
Регистрация: 22.10.2011
Сообщений: 36,902
Записей в блоге: 12
09.07.2013, 15:52
C++
1
TabItem->Children[1]->Parent = Form1;
(Children[0] - это сам Tab, а Children[1] - его Layout, вот Layout и переносим назад на форму)
0
19 / 19 / 4
Регистрация: 27.05.2013
Сообщений: 119
09.07.2013, 17:20  [ТС]
Как то не совсем так... у Children есть еще Items... а потом Parent

если написать
C++
1
TabItem->Children[0].Items[0]->Parent = Form1;
на форму переезжает строчка "TAB", то есть значит "сам Tab", компоненты остаются на TabControl, просто закладочка пропадает

C++
1
TabItem->Children[0].Items[1]->Parent = Form1;
остается "сам Tab", а слой с компонентами непонятно где, на Form1 во всяком случае его не видно

Далее повышая Children[1], или Items[2], возникает исключение, то есть там пустые указатели похоже
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33395 / 21505 / 8236
Регистрация: 22.10.2011
Сообщений: 36,902
Записей в блоге: 12
09.07.2013, 17:27
Цитата Сообщение от Olex Посмотреть сообщение
остается "сам Tab", а слой с компонентами непонятно где, на Form1 во всяком случае его не видно
Я наверное проверил, перед тем, как написать?

Вот что получалось после переноса содержимого формы на TabItem:

Вот это - после обратного переноса:


У меня что-то с глазами, или кто-то другой не видит очевидного? Удаление пустой вкладки не делал, если что - это элементарно, вопрос был не в этом...
1
19 / 19 / 4
Регистрация: 27.05.2013
Сообщений: 119
09.07.2013, 18:13  [ТС]
Да, все верно. Я продублировал все в X2, все работает так же отлично как и у Вас. Спасибо.

Получается что в X4 такая запись
C++
1
TabItem->Children[1]->Parent = Form1;
не проходит, там по другому устроена иерархия....
0
19 / 19 / 4
Регистрация: 27.05.2013
Сообщений: 119
11.07.2013, 14:36  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
C++
1
TabItem->Children[1]->Parent = Form1;
(Children[0] - это сам Tab, а Children[1] - его Layout, вот Layout и переносим назад на форму)
Для ХЕ4 получается так:
C++
1
TabItem->Children->Items[1]->Children->Items[0]->Parent=Form1;
фух...

Добавлено через 15 минут
и удаление вкладки:
C++
1
TabItem->~TTabItem();
))))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.07.2013, 14:36
Помогаю со студенческими работами здесь

MVVM. Если окно содержит 1 TabControl, который в себе содержит много вкладок и в каждой может быть другой TabControl с вкладками
Я сделал так: Создал UserControl, в него поместил TabControl создал вкладки, во вкладки начал помещать нужные объекты (ListView, кнопки,...

Добавление записи в Listview(1 форма) через Диалоговое окно(3 форма) другой формы (2 форма)
Всем доброго дня и с наступающими праздниками! Знаю, тема 7 частых вопросов по WinForms уже не раз обсуждалась, и была прочитана, но или...

Форма 1 вызывает форму 2, форма 2 закрывается, форма 1 продолжает работать дальше
Вынес предстартовые действия формы1 в форму2 (там у меня проверка существования файлов, их закачка если нету и проверка обновления), но как...

Форма авторизации - вне зависимости от выбранного пользака, открывается одна и та же форма
Форма авторизации - вне зависимости от выбранного пользака, открывается одна и та же форма Есть два пользака - главбух и ведущий бух В...

Простая форма веб-форма для сложения двух чисел не работает
Не работает скрипт для подсчета сложения.Может я неправильно привязал обработчик события(клик на кнопку подсчитать)? Вот код: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru