Задать начальное поведение окон фрейма Application

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Задать начальное поведение окон фрейма Application

Сообщение Developer »

Привет всем!


Пункт меню Window -> Tile Cascade Arrange Icons - определяет поведение, размер и положение открытых окон.


Где в Application указать, чтобы задать начальное поведение, размер и положение открываемых окон в приложение сгенерированом Wizard-ом не меняя параметров в свойствах каждого конкретного окна (Browse)? Где определить этот параметр для всех окон фрейма?
С Уважением, Developer
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8031
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Re: Задать начальное поведение окон фрейма Application

Сообщение Игорь Столяров »

Привет !

Насколько я понимаю в кроликах, "Tile Cascade Arrange Icons" упорядочивает уже открытые окна (как ты абсолютно верно написал)
и не оказывает никакого влияния на вновь открываемые. Т.е. это не свойство окон, а операция над уже открытыми окнами.
А значит ее нельзя определить "для всех окон фрейма". В принципе, можно после открытия каждого окна принудительно выполнять
в AppFrame операцию по упорядочиванию окон, что-то вроде: Post(Event:Accepted,?Arrange) или посылать из открытого окна событие
в AppFrame, по которому будет выполняться эта операция ... Наверно так. :)
Make Clarion Great Again ! 😎
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Re: Задать начальное поведение окон фрейма Application

Сообщение Developer »

Игорь привет! Спасибо за отклик и ответ! :D

Ты правильно понял мой вопрос :D

Попробую твоё решение. :)

Но ещё я имел ввиду штатную фунцию Wizard-а связанную с порядком расположения вновь открываемых окон.

Если такой функции нет, тогда наверное необходим триггер по событию открытия нового окна фрейма и выполнению операции по упорядочиванию
всех открытых окон.

Пользователь открыл новое окно: новое окно и уже отрытые окна взаимно упорядочились в соответствии с профилем по умолчанию.

Как отследить вновь открытое окно и послать команду на упорядочивание всех окон? :?:

Может есть пример?
С Уважением, Developer
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3289
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Re: Задать начальное поведение окон фрейма Application

Сообщение Дед Пахом »

если ABC, то можно отнаследовать глобальный WindowManager, переопределить Open(), в котором написать что-то вроде

PARENT.Open()
POST(Event:RearrangeWindows, ,Glo:FrameThread)
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8031
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Re: Задать начальное поведение окон фрейма Application

Сообщение Игорь Столяров »

Дед Пахом писал(а):POST(Event:RearrangeWindows, ,Glo:FrameThread)
Можно даже попробовать напрямую вызывать операцию:

После Open(AppFrame) добавляем:
Glo:FrameThread = THREAD()
Glo:ItemArrange = ?Arrange

И тогда можно:
PARENT.Open()
POST(Event:Accepted,Glo:ItemArrange,Glo:FrameThread)

Но может быть подвох в том, что вызов операции по событию будет срабатывать до визуализации открываемого окна. Надо пробовать ...
Make Clarion Great Again ! 😎
Ответить