简单组件问题,十万火急(200分)(200分)

  • 主题发起人 主题发起人 youngyxy
  • 开始时间 开始时间
Y

youngyxy

Unregistered / Unconfirmed
GUEST, unregistred user!
问题如下:
对于程序中出现的字符串常量,如Warning_Message(内容为:警告:非法操作);
DiskError_Message(内容为: 磁盘不能执行写操作),等等。
通过读取Ini文件来置换它的内容,如换成big5码。
要求1,不改动原来程序的逻辑,特别地,原来程序中这样调用的
showMessage(Warning_Message);不要改动成为Message[7]等形式。
要求2,设计一个组件,继承自(TComponent)来管理这些字符串。
十万火急,灌水有分

 
我这有个程序多语言的例子就是通过ini文件实现的。要的话留个伊妹儿
 
有这个必要吗?既然是常量,不如判断系统是否为繁体中文,如果是的话,直接使用函数转换为big5显示,例:
if 繁体 then showmessage(gbtobig5(warning_message))
 
Delphi本身就有多语言支持,你可以用Delphi自己的功能作多语言软件的开发.
 
我说big5仅仅只是举例说明一下,应用程序对应的客户个体化要求很多,如都是内地用户,有些需要这个message为‘车间’,有些则为'课'等等。
想用INI文件读写的办法,就是提供一个无需重新编译就能满足客户个体化要求的一种解决办法。至于为什么要做成TComponent类的组件,是因为可以通过form.Components来定位这些东东,便于INI读写。
to :桦树皮, 请发给我吧 youngyxy@126.com,

 
发完了,请查收,正符合你的要求。你试试吧。
 
已经收到,谢谢,但是还是不合我的要求。
因为它的程序中直接使用M1:= aIniFile.ReadString(sectionName,'M1','');
存在很多S100,M1000等字符串常量,需要一个统一的管理办法,
就是设置一个组件假定为 TMsgArray,它的属性就是MsgName[index: integer];
通过诸如:TMsgArray.IndexOfName('M1')的方式来存取它的实际值
 
不好意思,我没弄明白你什么意思。
 
谢谢诸位
偶的问题已经解决,设计一个类,利用了delphi中的属性索引。
客户程序中的引用非常方便,只要创建这个类,然后把原来使用
M1的地方改为 aObj.WarningMsg等等就可以

 
后退
顶部