e ;
if bmp12=1 then bmp12 := 2 else bmp12 :=1;
bmp.Handle := LoadBitmap(Hinstance,PChar(''BMP''+IntToStr(bmp12)));
ico.Handle := LoadIcon(Hinstance,PChar(''IN''+IntToStr(bmp12)));
Image1.Width := bmp.Width + 10;
Image1.Height := bmp.Height + 10;
Image1.Canvas.Draw(4,6,bmp);
Icon := ico;
end;
end.
3、字符串资源的定义与使用
字符串的存储在应用程序中是独立的,应用
程序只有在使用资源时载入,使用完之后清除,从而节省内存,同时字符串也可以用于翻译,一些汉化软件都利用了字符串。编辑的字符串放在一个文本文件中,可以使用Delphi中的:File->New->Text,编辑字符串文件,字符串文件的格式如下:
stringtable
begin
1,"book"
2,"apple"
3,"desk"
4,"pen"
5,"computer"
end
编辑完字符串文件后,选择Save as,注意要将文件类型改为资源编译文件(.RC),这还不是资源文件,它还必须经过编译才能成为资源文件(.RES)。编译命令为Dos提示符下的BRCC32,其路径为:D:\Program Files\Borland\Delphi4\Bin\brcc32.exe ;例如上面的字符串资源编译文件名为:StrRes.rc,在DOS提示符下输入:brcc32 \mydir\StrRes.rc ;则编译后会生成一个名为:StrRes.res的资源文件,使用该文件即可访问字符串资源。具体使用见下例:
unit teststr;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
count : integer;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{$R StrRes.RES}
const
wordcount = 5;
procedure TForm1.Button1Click(Sender: TObject);
var
strword : string;
begin
if count>wordcount then count := 1;
strword := LoadStr(count);
label1.Caption := strword;
count := count + 1;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
label1.Caption := LoadStr(1);
count := 2;
end;
end.
程序中常量wordcount用来记录字符串资源文件中字符串的数量,变量count用来记录显示的字符串编号。
程序运行后单击Button1按钮,则将循环显示字符串资源文件中的每一个字符串。