Проблема с большим размером окна.

Clarion, Clarion 7

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

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

Проблема с большим размером окна.

Сообщение kreator »

С9.1, что не слишком важно. Нужно сделать большое окно с графическими элементами. Элементы рисую функциями box и т.д. И Create'ом пробовал, результат один. При достижении размера примерно в 17000 экранных единиц окно начинает колбасить, вернее не отображаются никакие элементы, они как будто бы застыли на границе этой критической. Хотя само окно вроде нормальное. Что можно предпринять? Чья, вообще, проблема? Клариона или Винды?
We are hard at work… for you. :)
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Проблема с большим размером окна.

Сообщение Admin »

kreator писал(а):17000 экранных единиц окно начинает колбасить
Я удивлен что еще раньше не упало приложение :( Не заточен Clarion для этого... мое мнение.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Проблема с большим размером окна.

Сообщение Yufil »

Попробуй поиграть с Prop:Buffer, иногда помогает
kreator
✯ Ветеран ✯
Сообщения: 5161
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Проблема с большим размером окна.

Сообщение kreator »

Yufil писал(а):Попробуй поиграть с Prop:Buffer, иногда помогает
Не помогло.
Admin писал(а): Не заточен Clarion для этого... мое мнение.
А что тут такого? Это где-то 30 экранов. В браузере ведь я могу открыть окно длинное-длинное. Я, вообще, посмотрел и мне кажется, что дело в типах переменных координат, видимо, заложен банальный SHORT. Ещё выяснил, что контролу можно присвоить отрицательное значение координаты, при этом окно можно увеличить, видимо в 2 раза. Перевод окна в пиксели не влияет на общую картину, всё тоже самое. Надо конституцию менять. Может кто-нибудь напишет SV об этой проблеме? Разрешение мониторов растёт, а координаты контролов ограничены 32768/2.
We are hard at work… for you. :)
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Проблема с большим размером окна.

Сообщение Admin »

kreator писал(а): примерно в 17000 экранных единиц
А скрин можно приложить? Просто интересно посмотреть на "рисунок"
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
kreator
✯ Ветеран ✯
Сообщения: 5161
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Проблема с большим размером окна.

Сообщение kreator »

2.jpg
Некая реинкарнация диаграммы Гантта. Слева лист по очереди (даже "деревянный", что не столь важно), справа "графическая" диаграмма. Чтобы легче было синхронизировать две части, вертикальный размер листа выставляется такой, чтобы не было скролла на листе, скролл только на окне. Сделано достаточно давно, может и не кул, как могли. С версии на версию переходили, что-то подправляли. Но сейчас пришла беда откуда не ждали. Записей в листе стало так много, что ни он (лист), ни боксы, ни линии не укладываются в "критический" размер. Вот сейчас думаем, что делать. Самая простая идея - сделать обычный лист и отслеживать какие записи в нём видимы и перерисовывать каждый раз правую часть. Но работает схема не очень красиво, сами понимаете. Любые предложения принимаются. В 10-ке SV грозилась окна переделать, может и это ограничение снимут, но ждать...
We are hard at work… for you. :)
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Проблема с большим размером окна.

Сообщение Admin »

kreator писал(а): работает схема не очень красиво, сами понимаете
Тут главное, работать. Красиво - второстепенно.

Мой совет: Воспользуйся ImageEx4. Вывод графических примитивов 100000 за 2 секунды. Без расчетов конечно и без оптимизаций разных. Просто для примера вывел столько квадратов и линий. Объект в который выводятся примитивы скроллируется. Перерисовывать не нужно.
Только вот не знаю получится ли его на всю высоту листа вытянуть. Как там с координатами будет...
ImageEx.png
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
kreator
✯ Ветеран ✯
Сообщения: 5161
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Проблема с большим размером окна.

Сообщение kreator »

Спасибо за наводку. Надо посмотреть, не юзал. А что там за объект, куда примитивы выводятся? На лист, под лист ложится? Сейчас пользователи продвинутые, хотят качественные сервисы, не абы какие.
We are hard at work… for you. :)
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Проблема с большим размером окна.

Сообщение Admin »

kreator писал(а): На лист, под лист ложится?
Фиг знает.
kreator писал(а): не абы какие
C# смотри. Все мегакруто!
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8031
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Проблема с большим размером окна.

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

У меня подозрение на проблемы с размером буфера GDI Windows.
Его использование можно контролировать через диспетчер задач Windows.
Или просто выполни код в начале приложения и проверь наполнение окна контролами:

Код: Выделить всё

 
Loc:TypeParam        LONG(REG_DWORD)  

  Code

  ! --- Переустановка ограничений GDI Windows ----
  
  If Int(GetReg(REG_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows','GDIProcessHandleQuota',Loc:TypeParam)) < 65000
     PutReg(REG_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows','GDIProcessHandleQuota',0FDE9h,Loc:TypeParam)
  end
Make Clarion Great Again ! 😎
kreator
✯ Ветеран ✯
Сообщения: 5161
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Проблема с большим размером окна.

Сообщение kreator »

Нет, Игорь, не прокатило. В реестре вручную поменял, всё также. Кларион барахлит. Попробую с Image поработать, надеюсь там нет ограничений.
We are hard at work… for you. :)
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Проблема с большим размером окна.

Сообщение Admin »

kreator писал(а):Попробую с Image поработать, надеюсь там нет ограничений.
В ImageEx ты не объектами рисуешь а примитивами. Соответственно не загромождается память.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Ответить