**************************************
Image Editor Brcc32
BMP 只支持16位色 任意色
光标 黑白两色 任意色
ICO 只支持16位色 任意色
AVI 不支持 支持
WAV 不支持 支持
字体
字符串 不支持 支持
其他
****************************************
上面说的是直接在程序本身的调用。其实资源文件还有其它用法。比如说在你的程序携带其它文件,要用的时候释放出来。
例如: myexe exefile ''ha1.exe''//脚本文件
下面是自定义释放函数ExtractRes,本例中使用如下:
ExtractRes(''exefile'',''myexe'',''c:\new.exe'');
就把ha1.exe以new.exe为名字保存到C盘根目录下了.
function TForm1.ExtractRes(ResType, ResName, ResNewName: string): boolean;
var
Res: TResourceStream;
begin
try
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
try
Res.SavetoFile(ResNewName);
Result := true;
finally
Res.Free;
end;
except
Result := false;
end;
end;
----------------------------------------------------------------------
(二)中级应用篇:
上面我们已经知道如何把一副BMP图像从资源文件里面读出来,但是BMP文件太大了,JPG文件应用的相对较多.那么如何把JPG图像读出来呢?用资源文件加流方式即可。具体方法如下:
(1)MyJpg JPEG My.JPG
(2)Var
Stream:TStream;
MyJpg:TJpegImage;
Begin
Stream:=TResourceStream.Cceat(HINSTANCE,''MyJpg'',''JPEG'');
Try
MyJpg:=TJpegImage.Create;
Try
MyJpg.LoadfromStream(Stream);
Image1.Picture.Assignc(MyJpg);
Finally
MyJpg.Free;
end;
Finally
Stream.Free;
end;
end;
读取其它图片文件也是一样的.比如说gif动画文件,当然前提是你有一个gif.pas,这个单元很多站点都有的,可以自己去找找。实际应用中我还发现用上面的代码可以直接显示资源文件中的ICON和BMP.
说到图形处理,实际上还可以用Delphi创建、调用纯图标资源的DLL.比如说你可以看看超级解霸目录下的Dll,很多就是纯图标资源而已。具体方法如下:
(1):创建一个Hicon.RES文件,这里不再重复.
(2):新建一文本文件Icon.dpr,内容如下:
library Icon;
{$R Icon.RES}
begin
end.
用Delphi打开编译即可得到Icon.dll.
(3):实际调用方法如下:
Private
Hinst:THANDLE;
Var Hicon:THANDLE;
begin
Hinst:=Loadlibrary(''Icon.dll'');
If Hinst=0 Then Exit;
Hicon:=Loadicon(Hinst,Pchar(Edit1.Text));
If Hicon<>0 Then Image1.Picture.Icon.Handle:=Hicon;
FreeL