Определение окон в MDI приложении, навигация по окошкам?
Заведите в своей программе список всех открываемых окон, задайте им свои собственные опознавательные знаки и идетификаторы, выбирайте то окно, которое Вам нужно.
А вот я заметил что в менюшке "Window" в конце винда сама добавляет пунктики и очень даже нормально определяет к какому окну он (пункт) относиться, как бы этим воспользоваться... (кстати я до сих пор не понял как данный фьючер в меню включается ж-))
А вот я заметил что в менюшке "Window" в конце винда сама добавляет пунктики и очень даже нормально определяет к какому окну он (пункт) относиться, как бы этим воспользоваться... (кстати я до сих пор не понял как данный фьючер в меню включается ж-))
А-а-а, Вы в этом смысле.
Включается эта возможность путём установления в главной форме приложения свойства WindowMenu. Когда Вы положите на главную форму компонент главного меню и наполните его соответствующими для MDI пунктами ("Файл", "Окно", "Справка"), то вот имя пункта "Окно" следует указать в свойстве WindowMenu.
Создавайте своё приложение на основе предлагаемого билдером шаблона для МДИ-приложений (File->New..., затем в диалоговом окне вкладка Projects). В этом случае Вы получите работающий костяк программы с пополняемым меню "Окно".
которое определено глобально
if(MDIChildCount>0)
for(int i = MDIChildCount-1; i >= 0; i--)
MDIChildren->Close();
А так есть такие свойство
которое определено глобально
if(MDIChildCount>0)
for(int i = MDIChildCount-1; i >= 0; i--)
MDIChildren->Close();
Немного не то. Дело в том, что MDIChildren может оказаться любым дочерним окном, т.е. если мы хотим показать только определенное окно (например frmA на котором есть TEdit, причем у нас открыто 5 его экземпляров и в каждом мы редактируем различный текст) то не факт что мы попадем в то окно которое нам нужно, единственный вариант остаётся только смотреть на
MDIChildren->Caption! А для этого все заголовки окон должны быть разными (в общем это не очень удобно), к тому-же винды как-то определяют какое окно есть какое и даже подставляют его в меню... а делать работу несколько раз, меня как-то не устраивает (зачем изобретать велосипед?)
Кстати fellow !!! Чto-то не работает WindowMenu в MDI форме!!!
Возможно тогда тебе пригодиться такой код
if(Application->FindComponent("Form2")==NULL)
{
Screen->Cursor = crHourGlass;
Application->CreateForm(__classid(TForm2), &Form2);
Form2->Show();
Screen->Cursor = crDefault;
}
else
{
TForm *q = (TForm *)Application->FindComponent("Form2");
q->WindowState = wsMaximized;
q->Show();
}
((TEditForm*)ActiveMDIChild)->Close();
Раз десять перечитал твой вопрос так и не понял что ты хочешь узнать
Неправда должно работать. Смотри тот ли ты пункт меню выбираешь в свойстве WindowMenu
Чto-то не работает WindowMenu в MDI форме!!!
Вот посмотрите этот примерчик: