---- 不同于其它资源,字符串资源不能直接编辑,需要先按格式编制一个文本文件,再用程序将其编译成资源文件。下面用一个简单的例子来说明。首先用文本编辑器编一个文件lb.rc,其内容如下:
STRINGTABLE BEGIN 1,"开始" 2,"退出" END
---- 然后, 找到Delphi的Bin子目录下的BRCC32.EXE文件进行编译, 命令格式为: BRCC32 LB.RC,编译结束后即生成一个资源文件lb.res。要使用该资源文件,需要在单元文件implementation部分的开始处包括资源文件:{$R LB.RES}。在本例中,上面的字符串用于给一个命令按钮更换Caption设置, 使用的函数是Windows API函数 LoadString,以下是使用实例: //在FormCreat过程中: var txtCaption:array [0..255] of char; begin // if LoadString(HInstance,1,txtCaption,SizeOf (txtCaption))〉0 then btnStart.Caption:=StrPas(txtCaption); end; //在btnStartClick过程中: var txtCaption:array [0..255] of char; begin if LoadString(HInstance,2,txtCaption, SizeOf(txtCaption))〉0 then btnStart.Caption:=StrPas(txtCaption); end;
---- 这样就可以在程序运行时改变各种属性,而不需要在程序中出现字符串。如果使用另一个Delphi函数LoadStr,会显得更加简单: var txtCaption:String; begin txtCaption:=LoadStr(2); if txtCaption〈〉′′ then btnStart.Caption:=txtCaption; end;
---- 或许大家可以从以上的过程中看出, 使用123来标识一个字符串有些简陋,也很容易出错,那么怎么办呢?我们可以采取像C++中使用字符串的方法,为每个字符串预定义一个ID,如: const IDC—START=1; IDC—EXIT=2;
---- 当然要把它放在一个unit里(类似于C++的.h文件) ,在使用的单元里再uses一下就可以了,这样应用感觉是不是很爽呢? txtCaption:=LoadStr(IDC—EXIT);
|