Create vs Примитивы.

Clarion, Clarion 7

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

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

Create vs Примитивы.

Сообщение kreator » 28 Март 2019, 14:13

Философский вопрос.
Есть класс EnhancedFocusClassType. В частности отрабатывает визуальные эффекты. На листе с прозрачностью получили вот такой эффект:
ListwithTrn.png
Внутри класса есть только вызов примитива BOX. Проблема сидит именно внутри этой процедуры. Вызов один, рисует два прямоугольника. Функция LINE тоже отрабатывает двумя линиями. Стало интересно разобраться. Заменил ВОХ/BLANK на Create/Destroy, такого эффекта нет, и в тестах вроде всё работает как надо.
Что думает народ? Почему используются функции-примитивы? С Create/Destroy на что-то можно налететь?
We are hard at work… for you. :)

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 1213
Зарегистрирован: 06 Ноябрь 2014, 12:48

Create vs Примитивы.

Сообщение finsoftrz » 28 Март 2019, 15:52

Я пробовал оба варианта. Create/Destroy работает существенно медленнее, но заметно это на большом количестве объектов. В частности, в дизайнере печатных форм сложные бланки могут открываться на экране порядка 10 сек, а через примитивы подобный бланк открывается без задержек. Я как-то уже писал, что тема кларионовских графических функций недооценена, с их помощью можно много чего сделать в плане интерфейса. Это проще, чем через win api, т.к. графические примитивы интегрированы в оконную систему клариона. В общем, от задачи зависит.
Рязань решает.

Yufil
Ветеран движения
Сообщения: 1112
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

Create vs Примитивы.

Сообщение Yufil » 28 Март 2019, 18:55

Я рисую через Create, надо только не забывать указывать window{Prop:Buffer} = 1, этот параметр радикально ускоряет отрисовку. Возможно, остальные факторы и неважны.
Можно познакомиться и с Prop:LazyDisplay и Prop:DeferMove - вдруг какую пользу приносят.

Ответить