巨简单问题~~~ 进来有分,回答多分,不够再加!!!(50分)

  • 主题发起人 主题发起人 故乡的云
  • 开始时间 开始时间

故乡的云

Unregistered / Unconfirmed
GUEST, unregistred user!
我在程序里从数据库调用了word文件,并把此文件存到硬盘上,我想在程序退出时删除硬盘
上的这个文件(未退出时在用),我试了几个事件(onclose,ondestory,ondeactive),
都不行~~~~
我想问的是,form的哪个事件是在内存释放后发生的??
 
都释放了,运行谁呀
你的文件保存后,文件句柄释放了没有,在占用的情况下不能删除
 
你程序中肯定有没有释放得对象和文件建立了关联。比如,用流从数据库读出文件,
将文件保存到磁盘后,你需要将流对象释放。
 
我建议你在程序里划清与这个文件的一切界限,然后就像事先不知道和这个文件发生过关系一样,
调用函数删掉她,如果她赖着不走,那就是说你和她之间还有事情没有搞清楚,仔细找找,一定
会有的。

最后还有一个最笨的方法,再建立一个应用程序,专门用来干掉她的,在你原来的那个程序的
onclose事件里把它请出来,让它来做刽子手,完事儿以后让它自己消失~~~!!!

哈哈,我的回答满意吗?
 
to 203010:
句柄怎么释放呀??
var
FuleHandle:integer;
begin
FileHandle:=FileCreate(ff);
Fileclose(FileHandle);
end;
请问上面的FileHandle算句柄吗??
 
可以说算句柄了。
你的意思是不是将Word文档读到本地,然后打开,在程序退出的时候在关闭Word文档,删除文件?
如果是这样,那么在那里删除都可以,前提是退出Word文件
不知道我理解你的意思没有。
 
喔,对了,是不是使用OleContainer打开的Word?
如果是那样的话,必须关闭。然后才能删除文件。
 
to yzhshi:
是你说的那个意思,请问你说的‘先关闭,然后才能删除文件。’在程序里怎么实现呀?
 
to jqw:
我试了,不行~~~
 
我帮你实验一下。
 
.Close属性应该可以。
 
有点眉目了,不过删除要时间,不知怎样能让程序在关闭时延迟一会,或直接在程序里判断
硬盘上文件是否已经删除,删除了再关闭//
 
非常简单,我曾经用过ole的excel,destroy原来那个ole就可以了.
 
没错,删除需要时间,因为Word退出需要一点时间,这个时间不由程序掌握。
 
onclosequery中
连接此文件看在不在,
 
多人接受答案了。
 
后退
顶部