做过资源文件的进来看看!!!资源文件支持Html文件吗??? (50分)

D

dana

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序需要调用一些网页,可是我又不想让网页,及图片直接放在目录下,我想把这些都装入到资源文件中,让人家看不到,可以吗?
如何做?

资源文件支持Html文件吗?
 
在菜单project->resources下建立new->user data,resource type='HTML'
//并将你要加入资源中的HTML文件插入资源文件中
之后
var
R: TResourceStream;
begin
try
r:=TResourceStream.Create(HInstance, 'HtmlFilename', 'HTML');
//其中HtmlFilename为HTML文件名,HTML为资源类型
r.SaveToFile('c:/temp.html');
...你对temp.html文件的操作...
deletefile('c:/temp.html');
finally
r.Free;
end;
end;
 
不好意思,我确实找不到[在菜单project->resources下建立new->user data,resource type='HTML']这是在哪里?
 
或者考虑下用本地数据库来保存网页文件啦,如access
 
还有什么好方法吗?
 
通常在Delphi的应用程序中,我们会调用到很多的资源,例如图片,动画(AVI),声音,甚至于别的执行文件。当然,把这些资源分布到不同的目录不失为一个好办法,但是有没有可能把这些资源编译成标准的windows资源从而链接到一个执行文件里面呢?

我们可以自己做一个RC文件,例如 sample.rc ,RC文件其实就是一个资源文件的描述文本,通过“记事本”程序创建就行了。然后可以输入一些我们要定义的资源,例如:

MEN BITMAP c:/bitmap/men.bitmap
ARJ EXEFILE c:/arj.exe
MOV AVI c:/mov.avi
然后用BRCC32把这个RC文件编译成sample.res(真正的资源文件)。

在Delphi的工程文件中使用 $R 编译指令让Delphi包括资源到EXE文件里面。

{$R sample.res}
这样我们就可以在这个单一的执行文件中调用资源了。举例如下:

EXEFILE:

procedure ExtractRes(ResType, ResName, ResNewName : String);
var
Res : TResourceStream

begin
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType))
Res.SavetoFile(ResNewName);
Res.Free

end;
AVI:

procedure LoadAVI;
begin
{Avi1是一个TAnimate类}
Avi1.ResName:='AVI';
Avi1.Active:=True;
end;
 
1、在.rs文件中是不是只能写文件名,不能写目录吗?
MEN BITMAP c:/bitmap/men.bitmap
HTM Html c:/11.htm
比如写这个MEN BITMAP c:/bitmap/*.BMP可以吗?

2、我已把所需资源放到*.res中了,然后要在WebBrowser1控件装入这个资源如何做?
 
请看我的笔记:http://www.delphibbs.com/keylife/iblog_show.asp?xid=5036
1.可以写目录。//意思是加入的文件可以带路径名,即全文件名
2。应用程序启动后把该资源文件分离出来,建立临时文件,供其它控件调用。在应用程序退出的时候再删除掉该临时文件。
 
我现在是HTML格式,该如何写?
 
要把整个目录写入资源文件如何写?
 
应该不行吧,期待高手帮你解决,正在研究中...
 
可以把Html格式写入资源文件中吗?我好像读不出来。
 
Html资源文件演示程序,详细请看源码:
http://www.efile.com.cn/eFile/cjsh/Demos/RcHtmlDemo.rar
欢聊访问我的个人主页:
http://www.efile.com.cn/eFile/cjsh/Default.htm
 
wjh_wy:当我点关于时,无法出现html页面,出现这个错误提示:“resource About Not Found”
 
兄弟我也帮不了你了,我这里可以显示出Html文件。我这里是测试成功的。
 
你是IE6的吗?
 
我知道你的原理是把网页存到硬盘上,然后再调用硬盘的文件显示出来对吧,

可是如果网页中有包含图片,那是不是还得一个个图片装入资源文件,有没有办法把整个目录一次性装入资源文件中。
 
楼主:
资源的文件的调用是以文件为单位的,每个加入资源文件的文件都要对应一个唯一的标识,这样才有可能准确分离出来并调用之。我觉得你要把整个目录做为单位加入的设想恐怕是不行的。也许只能一个文件一个文件地老老实实的加入并标识了。
另外,我觉得你的处理问题的思路是不是有点问题:要知道资源文件在编译程序时是要被编进可执行程序里的,你这样把整个目录下大量的网页文件和图片文件加入资源文件,将来生成的应用程序文件是会很雍肿的,这样是不是有些得不偿失呢?
妥否,请斟酌!
 
bjaman:你说到的,我也是有考虑到,可是我不想让人看到这些网页和图片,所以必须隐蔽起来,可又想不到更好的办法。
 
我测试过,当你把资源文件里的文件拆离出来使用时,这些文件还是可以被人看到并可以copy的。也就是说,在你的程序的运行过程中,它对于用户,还是可见的。只有当你的程序运行结束时,再删除该文件,文件才又会不可见。
那么,如果我运行你的程序,启动后我不关闭,我还是可以看到你要刻意隐藏的文件。
 
顶部