曾经有人问我,如果Delphi的VCL支持Unicode,你的多语言元件不是就没有用了吗?看起来是真的没有领会元件的精气神。Unicode不Unicode是涉及乱码的问题,而多语言元件是涉及自然语言的使用问题,就是大陆人要看简体,台湾人要看繁体,俄国人要看俄文,小日本要看日文,不可能给俄国人看中文,给小日本看俄文。
而一旦delphi(也许delphi2008)的VCL支持了Unicode,那更能将此类多语言元件发扬光大。怎么说,因为现在delphi不支持Unicode,很麻烦,就是即使改变Font的字符集,当你的字符集不与操作系统的字符集相同时,某些元件仍然会显示乱码,如TStatuseBar,TPageControl等。就因为这个问题,虽然windows2000支持很多Ansi语言,当你delphi写的软件要以不同的语言显示时,你也必须到“区域设置”那里去切换到那种语言,重新启动操作系统(然后又引起别的软件乱码,如我要使用公司的ERP就要切换到繁体,可是QQ就乱码了)。而一旦用上Unicode,就不需要切换了,也没有乱码问题了。
这次元件修改后,能支持Unicode了,因此,使用TNT元件的朋友有福了,数据库里面如果是nvarcha/nchar就认为是Unicode,DDManager也同时支持Unicode的编辑,并自动在Ansi与Unicode之间转码。