Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1229098
  • 博文数量: 788
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 7005
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 15:52
文章存档

2017年(81)

2011年(1)

2009年(369)

2008年(337)

分类:

2009-02-03 09:56:32



已经做好了一个资源文件,里面包含有若干二进制文件,我有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;  
  总感觉不是很好,每次都要构造新的对象,能不能在原来对象的基础上继续读资源的方法?  
 

上面的判断语句统一加上not,刚才忘记写了

把公用的部分写成一个函数  
   
  procedure   ExportResToFile(const   ResName,   ResType,   FileName:   string);    
  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;



--------------------------
新闻:阿里巴巴宣布今年将新招聘5000人
导航:博客园首页  知识库  新闻  招聘  社区  小组  博问  网摘  找找看
阅读(293) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~