CnPack Forum


 
Subject: MultiLang一个小BUG
TinTin
新警察
Rank: 1



UID 40878
Digest Posts 0
Credits 22
Posts 8
点点分 22
Reading Access 10
Registered 2008-9-3
Status Offline
Post at 2008-9-3 17:15  Profile | Blog | P.M. 
MultiLang一个小BUG

在D2009下,运行DEMO里的MultiLang工程,选择复选框列表第一项,当切换英文语言时候,复选框列表第一项变为非选择状态。
按常理说,应该保持原有的状态。

D2009版本是: 12.0.3163.16897。
如有说错,请见谅。
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6750
Posts 3551
点点分 6750
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2008-9-3 23:08  Profile | Blog | P.M. 
RadioGroup的Items被重新设置后,其选择是会自动清除的。
就像NoteBook的Pages一样。
Top
TinTin
新警察
Rank: 1



UID 40878
Digest Posts 0
Credits 22
Posts 8
点点分 22
Reading Access 10
Registered 2008-9-3
Status Offline
Post at 2008-9-4 09:30  Profile | Blog | P.M. 
版主所说差矣。我说的TCheckListBox。
而真的TRadioGroup,还是保存原有的选择状态。
我认为,如果切换语言,不应该自动清除其Items再赋值,而是修改其Item的值。
否则的话,容易丢失其Item的状态及其一些属性。
比如,TRzCheckListBox,Items的属性比TCheckListBox更多,如果只是简单的清除再新增,
会造成Checked和Enabled等状态都丢失。
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6750
Posts 3551
点点分 6750
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2008-9-4 09:47  Profile | Blog | P.M. 
Oh,看错了。

当时为简要起见,对于TStrings类型的属性,直接处理其Text属性了,这样也有利于切换语言时需要增加Item或减少Item的情况,而不需要额外写代码来add或remove。但对于组件内部根据TStrings的值进行如何的处理的问题,这是多语包所不知道的,照理说也不应该由多语包来处理。

当然,不处理Text而挨个处理Item也是一种方法,它的优点是你说的,可能会少影响内部状态;缺点则是增加item或减少item时不方便,而且为了向前的兼容性,这个对TStrings的处理机制由处理Text改为处理Item会给旧用户带来一点儿麻烦。不太好办啊。
Top
TinTin
新警察
Rank: 1



UID 40878
Digest Posts 0
Credits 22
Posts 8
点点分 22
Reading Access 10
Registered 2008-9-3
Status Offline
Post at 2008-9-6 19:53  Profile | Blog | P.M. 
有空我改一下吧。
Top
 




All times are GMT++8, the time now is 2024-3-29 07:45

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.006664 second(s), 7 queries , Gzip enabled

Clear Cookies - Contact Us - CnPack Website - Archiver - WAP