Показать сообщение отдельно
Старый 15.01.2002, 12:22   #27  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 868 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
вспоминая MDI
Помнится, когда я начинал программировать под Win95 были такие понятия как SDI и MDI (single- и multi odcument interface). Так вот, Аксапта - это типичное MDI приложение и поведение ее форм часто (не всегда) согласуется с данной концепцией.
Например, быть окнам в максимизированом или нормализованом состоянии - это свойство приложения, а не окна, и следовательно, если раскрыть одно окно, то и все распахнуться.
Теперь о самонормализующихся окнах (пример "Currency" закладка "Разноска"). Если переопределен метод lookup на элементе, то вызывается ваше (наше) окно, т.е. MDIChild, естественно, максимизировать его нельзя, значит, приложение все окна приводит в нормализованому состоянию.
Есть еще одна интересная особенность окна MDIChild (а именно они используются в Аксапте) - такое окно НЕ может быть модальным в полном смысле этого слова. Его можно сделать псевдо-модальным путем управления приложением (родительским окном) отработкой виндовых событий (пример - поиск меток, открытый из редактора), которое программистам в X++ не доступно (кажется).
Если нужно модальное сообщение об ошибке, предупрежедние или вопрос типа Да-Нет-Отмена, то можно использовать класс Box:: (стандартный MessageBox), НО я не пойму ПОЧЕМУ Box::stop НЕмодальный

Всегда Ваш Василий