全部博文(788)
分类:
2009-02-03 09:56:32
利用资源文件就可以
对,用resource将其以二进制形式导入。也可以用其它方法动态构造出bin,但比较麻烦。
用资源的话,好象还是要把资源文件写到磁盘上访问的啊,不过如果能把资源文件释放到内存中来访问也不错的。就不知道哪位会!
资源文件可以用流访问阿
(1)存取资源文件中的位图
//RC: testBmp bitmap res\test.bmp
Image1.Picture.Bitmap.LoadFromResourceName(HInstance, ’res\test.bmp’);
或:
//RC: testBmp bmptype res\test.bmp
var
resStream: TResourceStream;
begin
resStream := TResourceStream.Create(HInstance, ’testBmp’, ’bmptype’);
Image1.Picture.Bitmap.LoadFromStream(resStream);
resStream.Free;
end;
请注意上面两种调用方式的不同之处。
(2)存取资源文件中的图标
将图标放在资源文件中,可以实现动态改变应用程序的图标。
//RC: testIcon icon res\test.ico
Application.Icon.Handle := LoadIcon(HInstance, ’testIcon’);
(3)存取资源文件中的AVI动画
//RC: testAvi avi res\test.avi
Animate1.ResName := ’testAvi’;
Animate1.Active := True;
(4)存取资源文件中的JPEG图像
为了能够处理JPEG图像,必须在Interface处引用JPEG单元。
var
jpg: TJPEGImage;
resStream: TResourceStream;
begin
jpg := TJPEGImage.Create;
resStream := TResourceStream.Create(HInstance, ’testJpg’, ’jpgtype’);
jpg.LoadFromStream(resStream);
Image1.Picture.Assign(jpg);
jpg.Free;
resStream.Free;
end;
补充:
1.资源类型除上述类型外,还可以字体文件,字符串文件等。
2.资源文件不但可以在标准图形界面下使用还可在控制台下使用。
先LoadLibrary(...);
再用 FindResource();