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

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

Добавлено: 28 Март 2019, 14:13
kreator
Философский вопрос.
Есть класс EnhancedFocusClassType. В частности отрабатывает визуальные эффекты. На листе с прозрачностью получили вот такой эффект:
ListwithTrn.png
Внутри класса есть только вызов примитива BOX. Проблема сидит именно внутри этой процедуры. Вызов один, рисует два прямоугольника. Функция LINE тоже отрабатывает двумя линиями. Стало интересно разобраться. Заменил ВОХ/BLANK на Create/Destroy, такого эффекта нет, и в тестах вроде всё работает как надо.
Что думает народ? Почему используются функции-примитивы? С Create/Destroy на что-то можно налететь?

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

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

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

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