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

Обсуждение извечных проблем кларионовских (и не только) отчетов

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

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

Сообщение kreator »

Никак не связано с параллельной темой. Случайно нарвались. вернее нарвались продвинутые пользователи.
С11, ABC.
Если окно предварительного просмотра пользователь не переводит в режим на весь экран, то программа начинает сохранять координаты в пикселях в ини-файле. Вернее всегда так сохраняет, только при установке "Maximize Preview Window" это не важно. И в конце концов окно улетает за пределы экрана, что не достать. Полдня потратил на поиски проблемы. Понятно вроде стало, что координаты в ini-файл надо записывать после обратного преобразования. Сделал. Оказалось, что при считывании координат из ini-файла и открытии окна не всегда идёт прямое преобразование. Инициализация координат в Превьюер-классе какая-то странная. Никто не лечил проблему?
Времени жаль аж жуть! :twisted:
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7325
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

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

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

Здесь наверно надо производить установку координат / размеров до PreviewWindow {Prop:Pixels} = True и
соответственно запись после PreviewWindow {Prop:Pixels} = False.
Что касается вылета окна за размеры экрана - то была отдельная тема по контролю координат окна, там
всё просто - варианты решения вопроса расписаны. ;)
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

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

Сообщение kreator »

Я хотел выяснить как у народа. Никто не морочился? Или не замечал?
Выставлять координаты можно. Только в превьюер-классе всё непросто. Если в обычном окне просто считали из ini-файла размеры и просто записали, то здесь куча методов, отвечающих за позиционирование окна. Я за полдня разобрался только где размеры пишутся. :mrgreen: Думаю - может вообще отключить переход на пиксели. Зачем это нужно?
Оффтоп. Порой залезу в классы, думаю - "зачем весь этот текст"? За количество строк платят что-ли? :D
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

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

Сообщение kreator »

Вот смотрю у Поручика в параллельном обсуждении окно не maximize. Нет "моих" проблем?
We are hard at work… for you. :)
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

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

Сообщение Yufil »

В Mdi-окнах позиция окна отсчитывается от позиции фрейма. Потом сдвинули фрейм - вместе с ним передвинулся Previewer, в том числе и за пределы окна.

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

Для начала просто SetPosition( 0,0,0 ) - установит в левый угол фрейма
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

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

Сообщение kreator »

Вроде вылечил. Ситуация такая. Стандартный класс PreviwerClass. Работает так. Переводит окно в пиксели. При выходе записывает координаты окна в ini-файл в пикселях :shock: . При открытии окна два раза читает координаты ini-файла. Первый раз до перевода окна в пиксели, второй раз после :shock: . Не просто читает, а есть какие-то некие условия, по которым пересчитываются координаты :shock: . Логика работы мне непонятна. Ну да ладно. Проблему поймать трудно на самом деле. Она проявляется, в частности, если у отчёта стоит опция "Preview window Maximize", а пользователь начинает окно выводить из максимального режима и потом его закрывать. Как-то так.
Кто вдруг столкнётся, подскажу как класс подправить. Сделал обратное преобразование окна из пикселей при записи ini-файла и запретил второй раз (когда окно пиксельное) читать координаты из ini-файла.
We are hard at work… for you. :)
Ответить