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

Clarion, Clarion 7

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

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

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

Сообщение kreator »

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

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

Сообщение finsoftrz »

Я пробовал оба варианта. Create/Destroy работает существенно медленнее, но заметно это на большом количестве объектов. В частности, в дизайнере печатных форм сложные бланки могут открываться на экране порядка 10 сек, а через примитивы подобный бланк открывается без задержек. Я как-то уже писал, что тема кларионовских графических функций недооценена, с их помощью можно много чего сделать в плане интерфейса. Это проще, чем через win api, т.к. графические примитивы интегрированы в оконную систему клариона. В общем, от задачи зависит.
C6/C11, ШВС, tps/btrieve.
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

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

Сообщение Yufil »

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