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

 
Проблема с MDI
ekya
Отправлено: 23.10.2003, 06:35


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

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



Всем привет.
Возникла следующая проблема: при создании нового окна его заголовок не отображается в меню, как в любом МДИ приложении.
У главного окна fsMDIForm, у всех остальных fsMDIChild и WindowMenu главной формы ссылается на существующий подраздел меню (верхний уровень) ("Окно").
Формы создаю так
TReestrForm *ReestrForm=new TReestrForm(this);
ReestrForm->Caption="Реестр прихода";
ReestrForm->Show();

В чем проблема?
Anry
Отправлено: 23.10.2003, 11:27


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

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



Во-первых:
ReestrForm->Show(); не обязательно, т.к. если у формы стиль fsMDIChild то при создании она автоматически становится видимой.
Во-вторых:
Не до конца понял суть проблемы, но у меня была похожая ситуация. Было меню "Окна" и в нем не было ни одного пункта меню. После того как добавил несколько пунктов, типа "Закрыть все", "Каскадом", "Слева направо" и т.д., все стало работать.
ekya
Отправлено: 23.10.2003, 18:56


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

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



Вот именно, что меню не пустое.
Там присутствуеют похожие пункты (свернуть все, Cascade, Arrange) и т.д.
А насчет Show ты прав — я этои сам заметил.

Да заодно — как в МДИ сделать модальную форму, например, диалог ввода. Пытался — пишет, что нельзя показать уже активную форму или что-то в этом роде, хотя форма не МДИЧаилд.
Alexander
Отправлено: 27.10.2003, 15:26


Не зарегистрирован







Это бага в Билдере 5. Насчет 6-го не знаю. Причем бага просто не решаемая. В принципе заставить менюшку перечитать список Child'ов можно, есть там такой метод типа BuildMDIChildMenu.
Еще список окон появляется при закрытии одного из них (однако не всегда).
А с модальным окном проблем быть не должно. Ты чего-то не так делаешь.
Пaxa
Отправлено: 12.04.2004, 12:56


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

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



Вот так отображается модальная форма:
frmAbout = new TfrmAbout(this);
frmAbout->ShowModal();

В главной форме fsMDIForm в menuitem подставить твое меня "окна" в С++Builder 6 усе работает как часики!

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