已经做好了一个资源文件,里面包含有若干二进制文件,我有TResourceStream来实现资源的释放,问题就在这里,我现在用的格式是
if FileExists('C:\a.exe') then
begin
rs:=TResourceStream.Create(HInstance,'a.exe','exefile');
rs.SaveToFile('C:\a.exe');
rs.Free;
end;
if FileExists('C:\b.exe') then
begin
rs:=TResourceStream.Create(HInstance,'b.exe','exefile');
rs.SaveToFile('C:\b.exe');
rs.Free;
end;
if FileExists('C:\c.exe') then
begin
rs:=TResourceStream.Create(HInstance,'c.exe','exefile');
rs.SaveToFile('C:\c.exe');
rs.Free;
end;
总感觉不是很好,每次都要构造新的对象,能不能在原来对象的基础上继续读资源的方法?
if FileExists('C:\a.exe') then
begin
rs:=TResourceStream.Create(HInstance,'a.exe','exefile');
rs.SaveToFile('C:\a.exe');
rs.Free;
end;
if FileExists('C:\b.exe') then
begin
rs:=TResourceStream.Create(HInstance,'b.exe','exefile');
rs.SaveToFile('C:\b.exe');
rs.Free;
end;
if FileExists('C:\c.exe') then
begin
rs:=TResourceStream.Create(HInstance,'c.exe','exefile');
rs.SaveToFile('C:\c.exe');
rs.Free;
end;
总感觉不是很好,每次都要构造新的对象,能不能在原来对象的基础上继续读资源的方法?
var
Res: TResourceStream;
begin
if not FileExists(FileName) then
begin
Res:= TResourceStream.Create(HInstance, ResName, PChar(ResType));
try
Res.SaveToFile(FileName); //将资源保存为文件,即还原文件
finally
Res.Free;
end;
end;
end;