前两天用cxgrid做个筛选功能,本来打算自己做几个Button和Edit进行提交判断,后来发现cxgrid自带的filterControl控件功能就非常强大,直接用就很好.
但是问题是filterControl的界面是英文的,做出来用户会非常不便,直接用肯定不行.但是在控件里没办法改,所以就尝试直接修改控件的源代码再加载,因为仅仅只是修改显示文字,功能上并没有修改,所以还是很简单的,只需要将几个相关的pas文件里的常量修改一下就可以了.
我用的是delphi2007,加载的控件包是ExpressEditors Library 5,包里source下cxFilterControlDialog.pas文件就是filterControl的主界面,查看源码,Initialize方法就是对主界面的一些显示操作,里面像btSave.Caption啊,btOk.Caption啊,btOpen.Hint啊,是什么意思一看就明白了,后面的取指针所存的就是具体显示的Text,在文件cxFilterControlStrs.pas里接口下的resourcestring部分保存,一个个对应着修改就好了.
但是以上能修改的只是主界面的显示文字,还有筛选条件的选择,比如equal,not equal,like什么的是不能修改的,这些常量保存在另外一个文件中,可以通过操控页面来找到,控制这个显示的页面是ExpressEditors Library 5包里的cxFilterControlUtils.pas文件,通过GetFilterControlOperatorText方法来取得筛选条件的显示文字,要修改文字同上面一样修改指针常量存放的文字就可以了,点击会发现这次指针常量存放的文件是在ExpressDataController包下的cxFilterConsts.pas文件,和上面一样修改即可.
到此大功告成,保存源文件,删除ExpressEditor Library 5(cxEditorsD11.bpl)控件,重新加载ExpressEditors Library 5\Packages下的cxEditors*.bpl控件就行了,这个就不用我说了.
呕心沥血找了一下午,终于解决,呵呵,在此和大家分享一样,此前在Google上搜到一个说对这个有汉化,不过也是好老的版本了用不了,还是得自己做,所幸比较容易.

解决方案 »

  1.   

    devExpress有自带的本地话资源编辑工具。还有对应控件。lz多此一举了呀。
      

  2.   

    楼上说的对,devExpress有自带的本地化资源编辑工具,是Tcxlocalizer,可以从网上下载一个汉化资源的ini文件,然后加载到这个控件里。cxlocalizer1.FileName=>ini文件路径,cxlocalizer1.avtive=true,cxlocalizer1.locale = 2052.
      

  3.   

    我现在也做cxGrid的汉化,甚至多语言的处理,我也觉得应该用cxLocalizer控件。刚接手这个工作,还不明白:cxlocalizer1.locale = 2052;的意思,请高手给点其他资料,谢谢!