[B]以下是对Word受控的一段Delphi代码,可以编译通过[/B] procedure TForm1.Button1Click(Sender: TObject);
var
BS: tmemorystream;
word:variant;
s:string;
BlobField: TField;
begin //分解Word 原文
dbedit1.DataField:='';
delete_s_ole;
if not OpenDialog1.Execute then exit;
with adoquery1 do begin
close;
sql.Text:='delete from File_nr';
execsql;
close;
sql.Text:='select * from File_nr';
open;
end;
word:=createoleobject('word.application');
word.documents.add;
word.Selection.InsertFile(OpenDialog1.FileName); //打开word文件
s:='s';
while s<>'' do begin
s:=get_olecontainer(word); // 得到Word的每一页
if olecontainer2.canpaste then olecontainer2.paste;
olecontainer2.update;
with adoquery1 do begin //存贮得到的一页Word文件
bs:=tmemorystream.Create;;
olecontainer2.SaveToStream(bs);
blobField:=fieldbyname('nr');
Append;
(BlobField as Tblobfield).loadFromStream(bs);
Post;
end;
end;
word.ActiveDocument.Saved:=True;
word.quit;
BitBtn1.Click; // 预览
end;
我的问题是代码移植到平台后,定义了一个Variant类型的变量Word,下面的代码如:word.documents.add;
word.Selection.InsertFile(OpenDialog1.FileName);
word.ActiveDocument.Saved:=True;
等编译不能通过,请教一下各位大侠,要实现类似的功能,代码该怎么写啊?