GLI |
Отправлено: 11.07.2003, 07:19 |
|
Не зарегистрирован
|
Не подскажете можно ли MDI child форму сделать модальной или как нибуть в обработчике дождаться закрытия этой формы. В общем это каталог выбора, выбираем из него и по закрытии присваеваем значение уже в форме из которой вызвали Child |
|
sprinter |
Отправлено: 11.07.2003, 11:48 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 14
|
В общем-то понятно, что в MDI — все равны и если кто-то равнее, то возникают такие проблемы. Думаю, что принципиально можно решить только выводом каталога на отдельной форме. Если же вся прога будет построена на неMDIишных отношениях MDI-форм — сами понимаете каково будет ими рулить.
Но пару решений можно предложить
1. Сделать очередную форму нормальной после ее создания, т.е.
Child = new TMDIChild(Application);
Child->Caption = Name;
//Условие уникальное именно для этого окна
if(ActiveMDIChild->Caption=="NONAME2")
Child->FormStyle=fsNormal; // или Child->FormStyle=fsStayOnTop;
и далее присвоить событию OnDeactivate этого окна функцию в которой выполнялось бы что-нибудь типа SetActiveWindow.
2. Не менее витееватый.
При открытии окна создать флаг (=False) разрешения закрытия этого окна.
Событию FormCloseQuery и/или OnDeactivate присвоить функцию в которой проверяется флаг и если =True то закрываем окно, либо не разрешаем переключиться. А флаг = True когда сделан выбор.
Может предложенные подходы и не блещут красотой, но пока лучше ничего не придумалось.
|
|
|