Страница 1 из 1
Задать начальное поведение окон фрейма Application
Добавлено: 09 Август 2014, 16:36
Developer
Привет всем!
Пункт меню Window -> Tile Cascade Arrange Icons - определяет поведение, размер и положение открытых окон.
Где в Application указать, чтобы задать начальное поведение, размер и положение открываемых окон в приложение сгенерированом Wizard-ом не меняя параметров в свойствах каждого конкретного окна (Browse)? Где определить этот параметр для всех окон фрейма?
Re: Задать начальное поведение окон фрейма Application
Добавлено: 09 Август 2014, 19:42
Игорь Столяров
Привет !
Насколько я понимаю в кроликах, "Tile Cascade Arrange Icons" упорядочивает уже открытые окна (как ты абсолютно верно написал)
и не оказывает никакого влияния на вновь открываемые. Т.е. это не свойство окон, а операция над уже открытыми окнами.
А значит ее нельзя определить "для всех окон фрейма". В принципе, можно после открытия каждого окна принудительно выполнять
в AppFrame операцию по упорядочиванию окон, что-то вроде: Post(Event:Accepted,?Arrange) или посылать из открытого окна событие
в AppFrame, по которому будет выполняться эта операция ... Наверно так.

Re: Задать начальное поведение окон фрейма Application
Добавлено: 09 Август 2014, 20:58
Developer
Игорь привет! Спасибо за отклик и ответ!
Ты правильно понял мой вопрос
Попробую твоё решение.
Но ещё я имел ввиду штатную фунцию Wizard-а связанную с порядком расположения вновь открываемых окон.
Если такой функции нет, тогда наверное необходим триггер по событию открытия нового окна фрейма и выполнению операции по упорядочиванию
всех открытых окон.
Пользователь открыл новое окно: новое окно и уже отрытые окна взаимно упорядочились в соответствии с профилем по умолчанию.
Как отследить вновь открытое окно и послать команду на упорядочивание всех окон?
Может есть пример?
Re: Задать начальное поведение окон фрейма Application
Добавлено: 09 Август 2014, 22:51
Дед Пахом
если ABC, то можно отнаследовать глобальный WindowManager, переопределить Open(), в котором написать что-то вроде
PARENT.Open()
POST(Event:RearrangeWindows, ,Glo:FrameThread)
Re: Задать начальное поведение окон фрейма Application
Добавлено: 10 Август 2014, 11:33
Игорь Столяров
Дед Пахом писал(а):POST(Event:RearrangeWindows, ,Glo:FrameThread)
Можно даже попробовать напрямую вызывать операцию:
После Open(AppFrame) добавляем:
Glo:FrameThread = THREAD()
Glo:ItemArrange = ?Arrange
И тогда можно:
PARENT.Open()
POST(Event:Accepted,Glo:ItemArrange,Glo:FrameThread)
Но может быть подвох в том, что вызов операции по событию будет срабатывать до визуализации открываемого окна. Надо пробовать ...