在olecontainer中怎样将嵌入的word97文档保存(100分)

S

springm

Unregistered / Unconfirmed
GUEST, unregistred user!
在olecontainer中怎样将嵌入的word97文档保存,
我用olecontainer.SaveToFile(FileName)时保存的
.doc文档在word下读出为乱码,是否要调用word中
的save as命令,怎样调用?是否还有其他方法?我
用的是delphi4.0c/s.
 
用olecontainer.saveasdocument试一下
 
我在Delphi4下实验的如下
olecontainer.filesave;
olecontainer.filesaveas(文件名);
提供一个例子:
var
varw:variant;
...
varw:=createoleobject('Word.Basic');
varw.filenew;
varw.appshow;
varw.insert('Mastering Delphi');
varw.filesave;
//载自:Delphi3从入门到精通.
//电子工业出版社.

 
olecontainer中的方法
SaveToFile和SaveToStream是按照Borland自己指定的一种格式存储的,Word
当然读不出来.方法就是hubdog所说的,用SaveAsDocument方法,这个时候需要
本地机上按装有Word,由oldcontainer自己去调用.没必要自己去调用Word.
不过你用Borland自己定义的格式存储之后,再没有安装Word的机子上也可以
用olecontainer读出来.但要想编辑,还是需要安装有Word.
 
非常感谢大家,付上运行通过的源程序,顺便问一下,TextFile类型如何转换为
string类型?在delphi4.0中似乎不能用string(TextFile),在delphi1.0中可以。

procedure TForm1.Button2Click(Sender: TObject);
begin
try
SaveDialog1.FileName:='';
while SaveDialog1.FileName='' do
begin
if SaveDialog1.Execute then
(** SaveDialog1.DefaultExt:=OleContainer1.OleClassName;
SaveDialog1.Filter:=OleContainer1.OleClassName;**)

OleContainer1.SaveAsDocument(SaveDialog1.FileName+'.doc');
end;
OleContainer1.DoVerb(ovPrimary);
except
showMessage('运行产生错误,程序将退出!!');
close;
end;

end;
 
顶部