Subject:
MultiLang一个小BUG
[Print This Page]
Author:
TinTin
Time:
2008-9-3 17:15
Subject:
MultiLang一个小BUG
在D2009下,运行DEMO里的MultiLang工程,选择复选框列表第一项,当切换英文语言时候,复选框列表第一项变为非选择状态。
按常理说,应该保持原有的状态。
D2009版本是: 12.0.3163.16897。
如有说错,请见谅。
Author:
Passion
Time:
2008-9-3 23:08
RadioGroup的Items被重新设置后,其选择是会自动清除的。
就像NoteBook的Pages一样。
Author:
TinTin
Time:
2008-9-4 09:30
版主所说差矣。我说的TCheckListBox。
而真的TRadioGroup,还是保存原有的选择状态。
我认为,如果切换语言,不应该自动清除其Items再赋值,而是修改其Item的值。
否则的话,容易丢失其Item的状态及其一些属性。
比如,TRzCheckListBox,Items的属性比TCheckListBox更多,如果只是简单的清除再新增,
会造成Checked和Enabled等状态都丢失。
Author:
Passion
Time:
2008-9-4 09:47
Oh,看错了。
当时为简要起见,对于TStrings类型的属性,直接处理其Text属性了,这样也有利于切换语言时需要增加Item或减少Item的情况,而不需要额外写代码来add或remove。但对于组件内部根据TStrings的值进行如何的处理的问题,这是多语包所不知道的,照理说也不应该由多语包来处理。
当然,不处理Text而挨个处理Item也是一种方法,它的优点是你说的,可能会少影响内部状态;缺点则是增加item或减少item时不方便,而且为了向前的兼容性,这个对TStrings的处理机制由处理Text改为处理Item会给旧用户带来一点儿麻烦。不太好办啊。
Author:
TinTin
Time:
2008-9-6 19:53
有空我改一下吧。
Welcome to CnPack Forum (http://bbs.cnpack.org/)
Powered by Discuz! 5.0.0