查看单个帖子
旧 2009-05-06, 11:38 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】problem with undo and databasereactor in 1.14.02

problem with undo and databasereactor in 1.14.02
problem with undo and databasereactor in 1.14.02
hi,
it's not easy to explain my problem.
if i call transformby on a blockreference with 2 attributs, databasereactor:: objectmodified is call only once on the blockreference and twice for the attributs.
then if i undone this operation, databasereactor:: objectmodified is call three times for the blockreference and twice for the attributs.
it was not realy easy to find the bug, but is it a bug ? do we have to change our code or will it be corrected in next release ?
thanks.
hi,
and what's the problem ?..
quote:
databasereactor:: objectmodified is call three times for the blockreference and twice for the attributes.
in the last version 1.14.01 and in autocad we doesn't have the same behavior.
databasereactor:bjectmodified must be call one time for the blockreference and one time for each attributes during undo.
in 1.14.02:
if the blockreference doesn't have attribute, databasereactor:bjectmodified is call one time, if we transform the blockreference, and one time, if we undone this operation.
when blockreference has n attributes, during undo databasereactor:bjectmodified is call n+1 times for the blockreference and each time for attribute.
i'll check it in details why it goes this way, but the general idea is that you can't relay on how many times an object is modified during undo/redo operation. i mean that at most its an performance issue.

ok i was just thinking that when you undone an operation, number of call to databasereactor:bjectmodified is the same than in the operation.
thank you dmitry for answering my question !
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)