我在泰山的时候,因为痛恨布局与微软相差太大,所以决心重写布局。新布局思路完全不同于以前,可以说是石破天惊,为此申请了一系列专利。
代码是基于泰山OFFICE3.3。为什么不基于5.0?一方面是我动手早,相当于预研;另一方面5.0改动太大,以泰山程序员的水平明显不如以前,产生了很多错误。我管芯自定义版本号是3.5、4.0,现在确定为6.0。
6.0倒是有一个BUG,就是输入文字之后,鼠标经过页眉就会异常,很早就有这个问题。一直没当回事。
去年底开源了,自然就想解决这个问题。开始想使用3.3,一通改名之后,发现不对。因为3.3是完全没有新布局的。
今天仔细研究了新建、流程,并无问题。后来发现document(模型)的类型不对。追查一下,ViewParagraph的doc类型是0,正确,为什么ViewLine的doc类型不对?期间也没有设置之类。
最后结论是这样的:
我之前构造了一套对象回收利用机制。
ViewLine回收之后,没有清理mDocument/mElem。
mElem是每次设置的,而一判断mDocument不空,就不设置了。
ViewLine使用频繁,所以最先产生此类问题。
于是我在回收时清空mDocument,问题自然消失。