C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Вкладки для Child, Каждое дочернее окно в своей вкладке
zeidel
Отправлено: 18.02.2007, 15:54


Ученик-кочегар

Группа: Участник
Сообщений: 9



У меня имеется MDI с кучей всяких разных дочерних окон (Приложение для радоты с БД).
Как сделать так, чтобы при создании очередного дочернего окна появлялась какая-нибудь закладка (как в Opera, например) или хотя бы кнопка на какой-нибудь Panel (как в 1С)? Чтобы юзеру было легче жить smile.gif
Заранее спасибо!!!
Tantos
Отправлено: 19.02.2007, 08:25


Станционный диспетчер

Группа: Участник
Сообщений: 108



Я кинул вниз TPanel, на нем создал кнопки по количеству окон и показывал/скрывал их по мере создания/удаления соответствующих окон.
olegenty
Отправлено: 19.02.2007, 08:26


Ветеран

Группа: Модератор
Сообщений: 2412



написать немного кода. при создании окна — создавать динамически кнопку. при закрытии — убирать. а какие проблемы-то? это тривиальная задача...
Termi_uc
Отправлено: 19.02.2007, 17:20


Дежурный стрелочник

Группа: Участник
Сообщений: 61



Перестань работать с MDI. Сама Microsoft от него открещивается. Кидай на главную форму TPageControl и по мере создания дочерних окон, создавай вкладки (TTabSheet) и располагай окна на них.
CODE

TForm * __fastcall TFmMain::
FindOrCreatePage(TRzPageControl * PageControl, TAction * ExAction,
TMetaClass * NewFormClass, TForm * NewForm)

{
Screen->Cursor = crHourGlass;

for(int i = 0; i < PageControl->PageCount; i++)
if(PageControl->Pages[i]->Caption == ExAction->Caption)
{
PageControl->ActivePage = PageControl->Pages[i];
Screen->Cursor = crDefault;
return NULL;
}

Application->CreateForm(NewFormClass, &NewForm);

TRzTabSheet * tsh = new TRzTabSheet(PageControl);
tsh->PageControl = PageControl;
tsh->Caption = ExAction->Caption;
tsh->ImageIndex = ExAction ->ImageIndex;

NewForm->BorderStyle = Forms::bsNone;
NewForm->Parent = tsh;
NewForm->Show();

PageControl->ActivePage = tsh;

Screen->Cursor = crDefault;
return NewForm;
}

Только проблемы с меню решай сам.

Отредактировано Termi_uc — 19.02.2007, 17:22
zeidel
Отправлено: 19.02.2007, 18:09


Ученик-кочегар

Группа: Участник
Сообщений: 9



Всем большое спасибо!!!

Вернуться в Вопросы программирования в C++Builder