delphi转excel后作为附件发送,仅1K且无法打开(200)

  • 主题发起人 slowly2006
  • 开始时间
S

slowly2006

Unregistered / Unconfirmed
GUEST, unregistred user!
我实现把数据库中某表导出,然后保存为excel后,进行发送. 如果我转excel后,加上一个Application.Terminate;然后另一个程序进行发送带附件邮件,那没什么问题~一切正常,数据都有. 但是:我如果把两个程序整和在一起,取消掉Application.Terminate.(是否内存中没有释放) 那么我这个发送过去的附件仅1k且无法打开.(正常情况下为40K.).请高手指导下啊~ 部分代码如下: app.DisplayAlerts:=false; app.ActiveWorkBook.Saved:=True ; Screen.Cursor:=crDefault; app.ActiveWorkbook.Save; str:='2009'+'.'+'xls'; //************************************************************** app.Save(ExtractFilePath(application.ExeName)+str); app.quit; app:=Unassigned; showmessage('ok'); Application.Terminate; //这句是将程序彻底终止了,才可以打开发送的附件. 我估计是否是内存中有什么没释放,这句如何修改可保证程序发送成功? sendemail;//这个是发送邮件.没什么问题
 
Excel退出内存需要一点时间,可以考虑在App.Quit之后加上Sleep(2000)的延时(时间长度可以通过实验来确定)。此外,还可以考虑再加上Application.ProcessMessage让进程处理消息。等待之后,内存中应当没有Excel进程,不必再使用Application.Terminate。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部