(100分+免费软件)求教界面更新问题;老鸟菜鸟看过来;
先请大家看下我的软件:agenius.go.nease.net
凡此贴内回复(无论问题回答出来没有)且用邮件通知我的人都可以免费得到PureEdit这个版本的注册码(我会每隔2,3天给大家发一次);
问题是这样:
这个软件是用SynEdit和ExpressBars做的;我用Action管理,这样在ActionMgr的OnUpDate事件里写上界面更新的代码,比如“编辑”里那些菜单什么时候有效,什么时候无效;但是ExpressBars重绘比较慢,非常占用时间,这样导致软件开启打一点的软件后就无法编辑了,响应十分缓慢;请问有什么好的方法解决这个问题?(别说让我换控件)
具体代码是这样的:
SynEdit写在TssnEditor类里,TssnEditor提供CanCut/CanPaste....方法供界面检测;在ActionMgr的OnUpDate里写actEditCut.Enabled:= Editor.CanCut;但这样太慢,“卡”的几乎用不了(ExpressBars还提供了LockUpDate方法,用了后效果也不好),后来写在每个Action自己的OnUpDate事件里,就成现在这样了,10000行以上的文件几乎没法编辑,但如果不更新界面的话,或者不用ExpressBars,用标准Menu控件的话,效果就好太多,几乎不受影响,郁闷ing;
现在有两个想法:
1.自己写一个action,就像标准action里面的Cut,Paste,把DelLine,DelFromBegin什么的都写成标准action,这样就不用从Editor里获取状态;
2.在申旻的《delphi高手突破》里提到了一种回调函数的方法,不置可否实现?
以上两种方法都是想了一下,没有具体实践,一是按本人水平实践起来有些难度,二是不确定实现后是否可以却是解决问题,特此向各路高手请教。请各位不吝赐教,说说自己的想法,或者还有什么其他方法?如果不会也请帮我顶 :)up有分!
问题点数:100、回复次数:8Top
1 楼majia_fk(fffff)回复于 2004-12-02 08:59:38 得分 10
upTop
2 楼langziwujia007(※刑警队长※)回复于 2004-12-02 09:08:34 得分 10
看不懂,初学。
帮您顶了Top
3 楼boatzm(晓舟怕麻烦)【IUnKnown】(#_#!)回复于 2004-12-02 10:29:44 得分 50
没有仔细看不过你可以追追是不是 canPaste 的取得的函数很花时间?Top
4 楼dropme(蟹子)回复于 2004-12-02 10:40:38 得分 0
to boatzm
应该不是很长,主要好像是DevExpressBars更新的不够快。因为用标准的TMenu控件的时候就很好。。。。
多谢两位帮我顶,大家继续哦;
要注册码得给我发邮件,写清楚机器码,此贴至2005年1月1日有效;Top
5 楼nyf1220(我是党员----不过听说最近风声紧,打算换名字)回复于 2004-12-02 10:44:45 得分 0
没用过,呵呵,不完善的表现吧Top
6 楼dropme(蟹子)回复于 2004-12-07 08:15:07 得分 0
所以请各位高手帮忙啊?Top
7 楼zhuchengchuan(DELPHI爱好者)回复于 2004-12-07 08:19:42 得分 10
没有用过,帮你顶一下!Top
8 楼xtascf(风中之峰)回复于 2004-12-07 09:06:51 得分 20
你能把你的软件注册码给我吗?最好有相应的控件(第三方控件),看看我能否帮你解决吧.呵呵.先帮你UP一下吧.Top




