Страница 1 из 1

Проблема с окном Предварительного просмотра без опции Maximize

Добавлено: 09 Октябрь 2019, 17:27
kreator
Никак не связано с параллельной темой. Случайно нарвались. вернее нарвались продвинутые пользователи.
С11, ABC.
Если окно предварительного просмотра пользователь не переводит в режим на весь экран, то программа начинает сохранять координаты в пикселях в ини-файле. Вернее всегда так сохраняет, только при установке "Maximize Preview Window" это не важно. И в конце концов окно улетает за пределы экрана, что не достать. Полдня потратил на поиски проблемы. Понятно вроде стало, что координаты в ini-файл надо записывать после обратного преобразования. Сделал. Оказалось, что при считывании координат из ini-файла и открытии окна не всегда идёт прямое преобразование. Инициализация координат в Превьюер-классе какая-то странная. Никто не лечил проблему?
Времени жаль аж жуть! :twisted:

Проблема с окном Предварительного просмотра без опции Maximize

Добавлено: 09 Октябрь 2019, 19:35
Игорь Столяров
Здесь наверно надо производить установку координат / размеров до PreviewWindow {Prop:Pixels} = True и
соответственно запись после PreviewWindow {Prop:Pixels} = False.
Что касается вылета окна за размеры экрана - то была отдельная тема по контролю координат окна, там
всё просто - варианты решения вопроса расписаны. ;)

Проблема с окном Предварительного просмотра без опции Maximize

Добавлено: 09 Октябрь 2019, 23:53
kreator
Я хотел выяснить как у народа. Никто не морочился? Или не замечал?
Выставлять координаты можно. Только в превьюер-классе всё непросто. Если в обычном окне просто считали из ini-файла размеры и просто записали, то здесь куча методов, отвечающих за позиционирование окна. Я за полдня разобрался только где размеры пишутся. :mrgreen: Думаю - может вообще отключить переход на пиксели. Зачем это нужно?
Оффтоп. Порой залезу в классы, думаю - "зачем весь этот текст"? За количество строк платят что-ли? :D

Проблема с окном Предварительного просмотра без опции Maximize

Добавлено: 09 Октябрь 2019, 23:57
kreator
Вот смотрю у Поручика в параллельном обсуждении окно не maximize. Нет "моих" проблем?

Проблема с окном Предварительного просмотра без опции Maximize

Добавлено: 10 Октябрь 2019, 15:17
Yufil
В Mdi-окнах позиция окна отсчитывается от позиции фрейма. Потом сдвинули фрейм - вместе с ним передвинулся Previewer, в том числе и за пределы окна.

Можно попробовать в процессе иконизации ( Event:Iconized ) и восстановления ( Event:Restored ) превьювера передвинуть окно, установить его позицию относительно экрана, а не фрейма.

Для начала просто SetPosition( 0,0,0 ) - установит в левый угол фрейма

Проблема с окном Предварительного просмотра без опции Maximize

Добавлено: 11 Октябрь 2019, 15:24
kreator
Вроде вылечил. Ситуация такая. Стандартный класс PreviwerClass. Работает так. Переводит окно в пиксели. При выходе записывает координаты окна в ini-файл в пикселях :shock: . При открытии окна два раза читает координаты ini-файла. Первый раз до перевода окна в пиксели, второй раз после :shock: . Не просто читает, а есть какие-то некие условия, по которым пересчитываются координаты :shock: . Логика работы мне непонятна. Ну да ладно. Проблему поймать трудно на самом деле. Она проявляется, в частности, если у отчёта стоит опция "Preview window Maximize", а пользователь начинает окно выводить из максимального режима и потом его закрывать. Как-то так.
Кто вдруг столкнётся, подскажу как класс подправить. Сделал обратное преобразование окна из пикселей при записи ini-файла и запретил второй раз (когда окно пиксельное) читать координаты из ini-файла.