Restore Window Location = OFF
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7379
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Restore Window Location = OFF
Привет всем !
Подскажите пожалуйста, а можно как-то в одном месте выключить опцию
"Save and Restore Windows Location" для всего приложения ?
Причём действие должно соответствовать названию, т.е.
РАЗМЕР и РАЗВЁРНУТОСТЬ окна должны сохраняться.
Эпизодические смещения MDI окон за границу AppFrame в C10
начали уже немного выбешивать. Не припоминаю такого в C63 …
Заранее спасибо !
Подскажите пожалуйста, а можно как-то в одном месте выключить опцию
"Save and Restore Windows Location" для всего приложения ?
Причём действие должно соответствовать названию, т.е.
РАЗМЕР и РАЗВЁРНУТОСТЬ окна должны сохраняться.
Эпизодические смещения MDI окон за границу AppFrame в C10
начали уже немного выбешивать. Не припоминаю такого в C63 …
Заранее спасибо !
За теми кто отстал - не возвращаться. (С) Кодекс
Restore Window Location = OFF
Раньше было так:
Размеры окна доставались из ini-файла. Я сделал перехват GetIni / Putini ( подменял стандартные вызовы на свои процедуры ).
При этом
- прописанный в конфигурациях ini-файл искался в %APPDATA% ( на локальном компьютере и свой у каждого юзера ),
- снималось ограничение на размер ini-файла
- и, наконец, параметры xpos/ypos для MDI-окон правил, чтобы они не вылазили за пределы фрейма.
https://mega.co.nz/#!EgJC3T7L!XCoPZyrJr ... 7xzQADMEec
Как сейчас - не знаю...
Размеры окна доставались из ini-файла. Я сделал перехват GetIni / Putini ( подменял стандартные вызовы на свои процедуры ).
При этом
- прописанный в конфигурациях ini-файл искался в %APPDATA% ( на локальном компьютере и свой у каждого юзера ),
- снималось ограничение на размер ini-файла
- и, наконец, параметры xpos/ypos для MDI-окон правил, чтобы они не вылазили за пределы фрейма.
https://mega.co.nz/#!EgJC3T7L!XCoPZyrJr ... 7xzQADMEec
Как сейчас - не знаю...
- Игорь Столяров
- Ветеран движения
- Сообщения: 7379
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Restore Window Location = OFF
Спасибо ! Вот это место очень интересное. Возможно это и есть решение вопроса …
Т.е. не надо отключать восстановление позиции окна при открытии, а просто проверять "вписывается" ли оно в AppFrame ...
За теми кто отстал - не возвращаться. (С) Кодекс
-
- ✯ Ветеран ✯
- Сообщения: 4984
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Restore Window Location = OFF
В глобальных свойствах App есть вот это:
Я не использовал.Disable Save/Restore Window Locations
Check this box if you would like to omit the last window size and position from being stored in the non-volatile storage source for all window structures in your application. You can locally enable only the windows that you want to maintain at the target procedure level.
We are hard at work… for you.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7379
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Restore Window Location = OFF
Я использовал. Работает в полном соответствии с описанием, т.е. вырубает сохранение / восстановление "size and position".
А надо выключить только "position".
За теми кто отстал - не возвращаться. (С) Кодекс
-
- ✯ Ветеран ✯
- Сообщения: 4984
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Restore Window Location = OFF
А изменение метода класса не предлагать?
We are hard at work… for you.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7379
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4618
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Restore Window Location = OFF
После восстановления позиции окна проверять его координаты. Если улетело за пределы фрейма, присваивать дефолтные. Кривые координаты сохраняются обычно из-за переключения между программами в неподходящий момент. Я еще на всякий случай включаю в меню "Восстановить стандартные параметры окон". Лет 15 назад в клалист точно обсуждалось. И в memo вроде такое видел...
C6/C11, ШВС, tps/btrieve.
-
- ✯ Ветеран ✯
- Сообщения: 4984
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Restore Window Location = OFF
В abutils.clw находим нужный метод и закрываем две строчки:
Как поставить соответствующую галку в свойствах App и подвязать её значение к шаблонам и классам не знаю. Отдельный шаблон для этого тоже как-то в голове не укладывается.
Я практикую внедрение своего функционала в стандартные шаблоны и классы через пользовательские глобальные настройки. Если очень надо, можно более глубоко поработать с классом и шаблонами.
Код: Выделить всё
INIClass.Update PROCEDURE (STRING ProcedureName, WINDOW W)
Info LIKE(WindowInfo),AUTO
CODE
Info.Maximized = CHOOSE (W {PROP:Maximize} <> 0)
Info.Minimized = CHOOSE (W {PROP:Iconize} <> 0)
Info.X = _nopos
Info.Y = _nopos
Info.W = _nopos
Info.H = _nopos
IF NOT Info.Minimized AND NOT Info.Maximized
! Info.X = W {PROP:XPos} Запрещаем сохранение местоположения
! Info.Y = W {PROP:YPos} Запрещаем сохранение местоположения
IF W {PROP:Resize}
Info.W = W {PROP:Width}
Info.H = W {PROP:Height}
END
END
SELF.UpdateWindowInfo (ProcedureName, Info)
RETURN
Я практикую внедрение своего функционала в стандартные шаблоны и классы через пользовательские глобальные настройки. Если очень надо, можно более глубоко поработать с классом и шаблонами.
We are hard at work… for you.
Restore Window Location = OFF
Может быть, залезть в глобальные вставки ( ABC Objects -> Ini Manager -> Fetch ) - и вставить что-нибудь такое
Код: Выделить всё
Если запрашивается 'xpos' или 'ypos' или 'width' или 'height'
И текущее окно - MDI
Прочитать позицию фрейма
SetTarget(,1)
0{Prop:Pixels} = 1
Getposition( 0,.....);
SetTarget()
Если текущее окно невидимо - вернуть что-нибудь подходящее...