Страница 1 из 1
Черная полоса
Добавлено: 29 Сентябрь 2010, 9:21
Игорь Столяров
Привет всем !
Столкнулся с проблемой. Иногда, при совпадении каких-то непонятных пока условий, в BROWSE
приложения, собранного в C72 вместо шапки списка появляется черная полоса.
Потом исчезает. Иногда меняет цвет.
В том же приложении собранным под C63 - эффект вообще не проявляется ...
см. прикрепленный рисунок к письму (программа работает под Win XP SP3). Пробовал разные компьютеры ...
Это какой-то мой косяк ?
Re: Черная полоса
Добавлено: 29 Сентябрь 2010, 17:09
Алексей- Софт-Центр
Добрый день!
У меня в кларионе 6 , АВС, в броузе , иногда зачерняются целые столбцы, если я ставлю на них color с условиями.
Причем зачернение - непредсказуемо - но СТАБИЛЬНО!
С уважением, Алексей!
Re: Черная полоса
Добавлено: 29 Сентябрь 2010, 21:31
Игорь Столяров
Алексей- Софт-Центр писал(а):У меня в кларионе 6 , АВС, в броузе , иногда зачерняются целые столбцы, если я ставлю на них color с условиями. Причем зачернение - непредсказуемо - но СТАБИЛЬНО! С уважением, Алексей!
Это может быть связано с некорректной работой менеджера настроек форматов списка, при несовпадении сохраненных настроек и установленных в списке по умолчанию. Если он включен попробуй отключить.
Re: Черная полоса
Добавлено: 30 Октябрь 2010, 17:42
Игорь Столяров
В буржуйском форуме нарыл рекомендацию по борьбе с таким глюком в C7:
Open(Window)
Window{Prop:Buffer} = 1
Разумное зерно в этом есть, можно попробовать ...
Вопрос вот в чем. Можно ли как-то режим вывода окон {Prop:Buffer} = 1 изменить глобально, для все открываемых окон ?
Или вообще для всего приложения ?
Re: Черная полоса
Добавлено: 30 Октябрь 2010, 19:54
Дед Пахом
Игорь Столяров писал(а):Вопрос вот в чем. Можно ли как-то режим вывода окон {Prop:Buffer} = 1 изменить глобально, для все открываемых окон ?
Или вообще для всего приложения ?
Вот для ABC накидал.
Код: Выделить всё
#TEMPLATE(PropBufferGlobalTemplate,'Глобальная установка Prop:Buffer для всех окон'), FAMILY('ABC')
#EXTENSION(PropBufferGlobalExt,'Глобальная установка Prop:Buffer для всех окон'), APPLICATION
#PROMPT('Установить Prop:Buffer в ', DROP('0|1|2')), %pbGloValue, DEFAULT('1')
#PROMPT('Использовать шаблон', CHECK), %pbUseTemplate, DEFAULT('1'), AT(10)
#DISPLAY('')
#DISPLAY('(c) Дед Пахом 30.10.2010 v0.01'), PROP(PROP:FontStyle,700), PROP(PROP:FontName,'Tahoma')
#!
#AT(%WindowManagerMethodCodeSection,'Init','(),BYTE'),PRIORITY(8001)
#IF(%pbUseTemplate = '1')
%Window{Prop:Buffer} = %pbGloValue
#ENDIF
#ENDAT
Re: Черная полоса
Добавлено: 31 Октябрь 2010, 10:22
Игорь Столяров
Огромное спасибо !
Все вставилось куда надо и где надо в C7.
Теперь буду иследовать насколько вообще это лечит проблему.
Re: Черная полоса
Добавлено: 16 Ноябрь 2010, 9:54
Игорь Столяров
Прошло пол-месяца, и я думаю, что настало время подвести итог.
Применение шаблона (установка для MDI окон Window{Prop:Buffer} = 1) к приложениям в C7 в корне не решило проблему, но ...
Без шаблона данный косяк при интесивной работе с приложением возникал несколько раз в день,
а с шаблоном - один раз в несколько дней. Причем проявление проблемы несколько изменилось.
Тесты проведены на 40 компьютерах с контрольной группой, т.ч. результат вполне достоверный.
С этим уже можно жить и работать, хотя конечно понятно, что глюк в RTL ядре Clarion и когда
он будет решен не понятно ... Подождем ... Может в очередном С73 / C8 Gold-Alfa ?
Так, что еще раз огромное спасибо за помощь !

Re: Черная полоса
Добавлено: 01 Март 2011, 15:45
Игорь Столяров
Дошли до бога жалобы ...

Неожиданно решение этой проблемы нашлось в буржуйском форуме.
Оригинал см. :
http://www.clarion-software.com/index.p ... 2&id=40152
Проблема в некорректном использовании RTL C7
GDI objects Windows (он их просто не все освобождает при закрытии окон) и после превышения лимита Windows тупо перестает их предоставлять по запросам приложения. Проверил, как написано в сообщении - все так и есть. К сожалению лекарство только одно - выкручивать лимит объектов
GDI для приложения в реестре на максимум REG_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Windows\GDIProcessHandleQuota = 65001.
Но с этим уже можно жить !
