有点怪的问题!(100分)

  • 主题发起人 主题发起人 Carem
  • 开始时间 开始时间
C

Carem

Unregistered / Unconfirmed
GUEST, unregistred user!
1,2,3 三个程序是独立的,但是我现在想:将2,3加入到1里面,运行1的时候,释放2,3到我<br>指定的系统目录里面,如何实现?
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=603979
 
转贴一个<br><br><br>&nbsp; 以前有不少文章也是关于这个问题的,不过这些老文章里讲述的方法通常让你需要做较多的工作,而其实并不需要这么工作,因为在Delphi5中的更加简便的方法。<br>&nbsp; <br>&nbsp; 首先,我想给你介绍一下Delphi5自带的一个演示程序。这个程序叫"Resource Explorer",你可以在"'Delphi5'/Demos/Resxplor"目录下找到,这个程序的功能,也许你已经猜到了,就是浏览资源(Resource)。<br>&nbsp; <br>&nbsp; 这是程序一个小巧而方便的工具,它可以将任何资源文件从一个dll或者执行文件中分离出来,使用它你会惊奇地发现原来在winword.exe中包含了如此之多的资源。在这里,我们使用这个工具只是用来确认我们已经将资源文件加入到我们的测试文件中。<br>&nbsp; 使用Delphi5,增加资源或者从exe文件中释放资源是非常简单的,你可以按以下步骤进行:<br>&nbsp; <br>&nbsp; 1.开始一个新的应用工程(选择菜单 File | New Application),然后增加一个文件文件到工程中(File | New… --&gt; Text)。这个文本文件将包含你所有的资源,格式是"资源名 资源类型 文件名",例如"PDF RCDATA foo.pdf",其中RCDATA表示这是一个任意的二进制文件。如果你想加入更多的资源,就加入更多的行。在这一步中最后需要做工作就是保存工程,这里需要注意的是,Delphi编辑器会自动为你的文本文件加上".txt"扩展名,而我们需要的是".rc"扩展名。你可以强制Delphi以".rc"扩展名保存文件,只需要给文件名加上双引号,例如“"MyResources.rc"”。<br>&nbsp; <br>&nbsp; <br>&nbsp; <br>&nbsp; 2.编译你的工程文件,确认你的资源已经被加入到执行文件中。运行"Resource Explorer",打开你的执行文件,然后检查你的资源是否加入到"RCData"之下。<br>&nbsp; <br>&nbsp; 3.现在该把你的资源文件从执行文件中释放出来了。Borland的程序员们已经编写了相应的代码,这让你使用起来非常容易。所有的代码已经封装在TResourceStream中,你所需要做的就是以下工作:<br>&nbsp; <br>&nbsp; procedure TForm1.Button1Click(Sender: TObject);<br>&nbsp; var<br>&nbsp; &nbsp; RS : TResourceStream;<br>&nbsp; begin<br>&nbsp; &nbsp; RS := TResourceStream.Create( 0, 'PDF', RT_RCDATA);<br>&nbsp; &nbsp; try<br>&nbsp; &nbsp; &nbsp; RS.SaveToFile('bar.pdf');<br>&nbsp; &nbsp; finally<br>&nbsp; &nbsp; &nbsp; RS.Free;<br>&nbsp; &nbsp; end;<br>&nbsp; end;<br>&nbsp; <br>&nbsp; TResourceStream.Create创建一个资源流(Stream),包含了当前进程"0"中名字为"PDF"的资源,它被预定义为常量类型"RT_RCDATA"。<br><br>
 
用流(stream)來做啊!<br>去搜一下!
 
把2、3作为资源加入到1里面去,运行后再用流把它们读出来,并写入指定目录
 
多人接受答案了。
 
to tseug<br>&nbsp; 我按照你的方法,无法将资源加入程序中,我的是d7。是不是版本的问题?我有急用,<br>请继续讨论
 
你把项目文件发给我看看 tseug@263.net
 
后退
顶部