资源文件在 Windows 下都是通用的,扩展名为 .res。
建立资源描述文件,扩展名为 .rc,格式如下:
stringtable //定义字符串 { 8001,"这是资源文件的第8001号文字" 8002,"这是资源文件的第8001号文字" 8003,"这是第一行\x0d\x0a\这是第二行\x0d\x0a\这是第三行" } |
mycur cursor 光标.ani mypic Bitmap 位图.bmp mywav WAVE 声音.wav myAVI AVI 无声动画.avi myIco ICON 图标.ico |
#define ConstVar 1 // 定义常量 |
标识 | 意义 | |
---|---|---|
stringtable | 文字 | |
bitmap | BMP 图象 | |
cursor | 光标 | |
icon | 图标 | |
wave | 声音 | |
jpeg | JPG 图象 |
Brcc32.exe 资源.rc |
{$R 资源文件.res} |
LoadResource
标识 | 使用方法 |
---|---|
stringtable | LoadStr(strID) : string |
bitmap | Image1.picture.Bitmap.Handle := LoadBitmap(Hinstance, 'mybmp'); Picture.Bitmap.LoadFromResourceName(HInstance, '位图.bmp'); var |
cursor | screen.cursor[35] := LoadCursor(Hinstance, 'mycur'); Panel1.cursor := 35; |
icon | Application.Icon.Handle := LoadIcon(HInstance, 'MyIco'); |
wave | Playsound(pchar(''mywav''),hinstance,sndsync or snd_resource); |
avi | animater1.resname:='myAVI'; Animate1.Active := True; |
建立如下的 .dpr 工程,编译生成 DLL 文件。
生成资源的工程代码 | library Icon; {$R Icon.RES} begin end. |
使用外部资源 | Hinst:=Loadlibrary('Icon.dll'); Hicon:=Loadicon(Hinst,'myico'); FreeLibrary(Hinst); |
项目 | 内容 |
---|---|
.RC | bb jpeg img.jpg |
资源文件 | {$R 'JPEG.res'} |
控件 | Image1: TImage; BitBtn1: TBitBtn; |
代码1 | procedure TForm1.BitBtn1Click(Sender: TObject); var stream : TStream; MyJPG : TJpegImage; begin stream:=tresourcestream.Create(hinstance,'bb','jpeg'); Try MyJpg:=TJpegImage.Create; Try MyJpg.LoadfromStream(Stream); Image1.Picture.Assign(MyJpg); Finally MyJpg.Free; end; Finally Stream.Free; end; end; |
代码2 | 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; |