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

 Здравствуйте, гость ( Вход | Регистрация )   Скачать форум | Поиск по Форуму | Участники | Помощь
 Поиск по:   сайтy   
   архиву форума   
  ОтветитьНовая темаНовый опрос
Вкладки для Child, Каждое дочернее окно в своей вкладке
« предыдущая тема | следующая тема » Подписаться на тему | Отправить тему на E-mail | Распечатать тему
zeidel
Отправлено: 18.02.2007, 15:54 Цитировать


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


Группа: Участник
Сообщений: 9
Пользователь № 3544
Регистрация: 28.12.06



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


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


Группа: Участник
Сообщений: 108
Пользователь № 2982
Регистрация: 15.11.06



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

--------------------
Чем больше узнаю людей, тем больше люблю компьютеры.
 
Послать сообщение ICQ  Top
olegenty
Отправлено: 19.02.2007, 08:26 Цитировать


Ветеран


Группа: Модератор
Сообщений: 2412
Пользователь № 507
Регистрация: 13.02.04



написать немного кода. при создании окна - создавать динамически кнопку. при закрытии - убирать. а какие проблемы-то? это тривиальная задача...

--------------------
Управлять можно лишь тем, что можно измерить.
Восточная мудрость.
 
Послать сообщение E-mail адрес ICQ  Top
Termi_uc
Отправлено: 19.02.2007, 17:20 Цитировать


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


Группа: Участник
Сообщений: 61
Пользователь № 4206
Регистрация: 09.02.07



Перестань работать с 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

--------------------
- Где точка самореализации, мысль ясна, отвечайте. Но по очереди и незабывай собачку п.
- Вечность вычисляет массивы и информация кодируется в плоти, как может одна капелька разрушеть все, где д., Старина д.?
 
Послать сообщение E-mail адрес  Top
zeidel
Отправлено: 19.02.2007, 18:09 Цитировать


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


Группа: Участник
Сообщений: 9
Пользователь № 3544
Регистрация: 28.12.06



Всем большое спасибо!!!
 
Послать сообщение E-mail адрес  Top
4 ответов с: 18.02.2007, 15:54 Подписаться на тему | Отправить тему на E-mail | Распечатать тему

Back to Вопросы программирования в C++Builder
ОтветитьНовая темаНовый опрос