CnPack Forum » CnVCL 组件包 » 我是一名新手程序员!请各位大大多多照顾!


2007-7-26 14:09 piaolingfeihu
我是一名新手程序员!请各位大大多多照顾!

出来乍到,我从网上看到了CnPack这个控件,然后下载并且试用,感觉很好用,而且想得也非常周全。小弟我也试着做了一个多语言的单元,但是很缺乏完善!
1、不能够遍历窗体界面上的所有组件!(因为我写的Writeinifile这个函数中的类的数量还是有限的,致使一些扩展类,当使用控件假如BS控件:我在函数中添加的一般是这样的类:TBsSkinSpeedButton,TBsSkinLabel等),所以我的写Ini文件函数,不能够遍历所有的组件,并且将其Caption或者其他的可显示信息以自己的方式写到ini文件中!
2、读函数和写函数问题类似,也是这样的情况!
请各位大大,指教一下,应该怎么样去添加相应的类,才能做出像CnPack那样能够遍历所有组件包括,第三方控件!
小弟先在这儿谢过了!

2007-7-26 15:56 Passion
遍历的代码在cnpack\Source\MultiLang\CnLangMgr中。
TCnCustomLangManager的几个方法:

TranslateRecurComponent 递归搜索Component和其子Component
TranslateRecurObject 递归搜索其属性中的Object

2007-7-27 09:53 piaolingfeihu
谢谢您

我看了一下那些代码!好多地方我还是不很懂,我才学了不多两个月,有些地方没有接触过!感觉关联性很强,好多的函数定义相互才实现这样的功能?还是有单独的几个函数就能够实现那?

2007-7-27 10:28 Passion
一个类里头的代码本来就是互相关联的。我说的是看这两函数的实现思想,包括循环遍历,防止重复的机制等。
代码要拿来在你的程序里头用自然得稍微改改,不是完全现成的。

2007-8-20 15:15 piaolingfeihu
搞定!

谢谢!

2007-8-20 16:16 Passion
不错,学习能力值得肯定。:victory:

2007-8-21 09:22 piaolingfeihu
谢谢

我已经仿照cnpack实现了多语言!
对您表示感谢!

2007-10-29 14:28 goodcyg
我做了个MultiLang咋不行呢?

我看了cnpack多语言设计,觉得设计的很好,想做demo试试,咋不行呢?我也看了它的使用说明?

新增窗体时,窗体必须继承自CnWizTranslate单元中的TCnTranslateForm。然后再生成整个窗体的翻译字符串,添加入Lang目录下的多语文件中。
最好在所有功能完成、窗体控件以及文字都确定以后再来实现多语,免得更新的时候因为可能潜在的bug而发生丢失字符串或错位的情况。:=)
生成翻译字符串的步骤如下:
在控件都放置好后,拖一个CnHashLangFileStorage到窗体上,设置其LanguagePath为一临时目录,用来存放临时生成的多语文件。
拖一CnLangManager到窗体上,把LangStorage属性设置成CnHashLangFileStorage1。
编辑CnHashLangFileStorage1的Languages属性,增加一种语言。因为需要的只是目标字符串,所以一种语言足够,而且LangID随便设置。
拖一CnTranslator到窗体上,双击。在弹出的窗体中左边选中该语言,点击生成按钮,右面会生成字符串,点击复制按钮以生成完整的带翻译值的字符串,点保存按钮。
在LanguagePath的临时目录中找到该语言文件,打开,复制,剩下的工作就是翻译后加入Lang目录下的多语文件中。

新增资源字符串按下列三步走:
第一,在CnWizConst单元里头加入这个字符串变量。
第二,在WizTranslate翻译单元里头加上这个字符串变量的翻译赋值语句。
第三,在各个语言文件里头加上新字符串的翻译条目。
是咋回事?

2007-10-29 15:37 Passion
楼上的问题已新开贴讨论。:)

页: [1]


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.