Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Security
1 / 1 / 0
Регистрация: 07.04.2012
Сообщений: 71
1

Открытие дочернего окна в MDI приложении внутри вкладки TabControl

28.02.2016, 18:48. Просмотров 1001. Ответов 1
Метки нет (Все метки)

Вообщем обычное с виду MDI приложение. Есть родительская форма MainForm на ней расположен TabControl. При открытии дочернего окна ChildForm оно открывается за компонентом TabControl.
Вопрос - возможно ли открывать дочерние окна, чтобы каждое окно располагалось внутри каждой вкладки компонента TabControl?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2016, 18:48
Ответы с готовыми решениями:

Вкладки внутри основного окна.
Всем доброго времени суток. Подскажите пожалуйста как в основном окне...

Баг в MDI приложении
Создал MDI-приложение. Положил на дочернюю форму ValueListEditor... После...

Затемнение в MDI приложении
Доброго дня! Искал недавно варианты затемнения формы со всеми компонентами с...

Один ToolBar в MDI приложении
Добрый день. Подскажите где почитать или подскажите: Создаю...

Работа с окнами в MDI приложении
Подскажите как отследить что окно уже открыто, и при повторном вызове не...

1
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26149 / 17526 / 6950
Регистрация: 22.10.2011
Сообщений: 30,864
Записей в блоге: 6
28.02.2016, 20:25 2
Лучший ответ Сообщение было отмечено Security как решение

Решение

TabControl или PageControl? Если Tab - то нет смысла, там на всех вкладках содержимое одинаковое, и только по изменению активной вкладки нужно скрывать какие-то одни компоненты, и отображать другие, чтобы создать иллюзию разного наполнения.

А вот если PageControl - тогда да, там на каждой вкладке изначально свое содержимое.

Main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void __fastcall TMainForm::CreateMDIChild(String Name)
{
    TMDIChild *Child;
 
    // создаем новую вкладку
    TTabSheet *ts = new TTabSheet(PageControl1);
    ts->Caption = "Tab #" + IntToStr(PageControl1->PageCount + 1);
    ts->PageControl = PageControl1;
 
    Child = new TMDIChild(ts); // и на этой вкладке - новую дочернюю форму
    Child->Caption = Name;
    if (FileExists(Name))
        Child->Memo1->Lines->LoadFromFile(Name);
}
ChildWin.cpp
C++
1
2
3
4
__fastcall TMDIChild::TMDIChild(TComponent *Owner) : TForm(Owner)
{
    ::SetParent(this->Handle, ((TWinControl*)Owner)->Handle); // устанавливаем еще и родителя, а не только владельца
}
Вот и всё...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2016, 20:25

Программно развернуть дочернюю форму в MDI приложении
В программе имеется главная форма (MDIForm) и несколько дочерних (MDIChild),...

CppWEbBrowser. Запрет на открытие нового окна, и открытие его в том же окне
Создаю программку-браузер. Столкнулся с такой проблемой, когда нажимаю на...

Передача данных из БД между динамическими Child окнами в MDI приложении
Есть родительская форма Form1. Из нее динамически создается дочерняя Form2. В...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru