如何用delphi打开word 或rtf文件(50分)

  • 主题发起人 主题发起人 goodflying
  • 开始时间 开始时间
G

goodflying

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用delphi打开word 或rtf文件
 
如何使用
 
ole中内嵌word<br>然后可以打开<br>说白了,还是word打开,不过你可以控制
 
先放一个WordApplication,WordDocument控件在表单上.<br>var a:OleVariant;<br>&nbsp; &nbsp; filename:WideString;<br>&nbsp; &nbsp; linkflag,saveflag,prange:OleVariant;<br>begin<br>&nbsp; a:='c:/a.doc';<br>&nbsp; WordApplication1.Connect;<br>&nbsp; WordApplication1.Visible:=true;<br>&nbsp; WordDocument1.Connectto(WordApplication1.Documents.Open(a,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam));<br>&nbsp; ...<br>&nbsp; linkflag:=false;<br>&nbsp; saveflag:=false;<br>&nbsp; prange:=WordDocument1.Range;<br>&nbsp; filename:='c:/test.bmp';<br>&nbsp; WordDocument1.InlineShapes.AddPicture(filename,linkflag,saveflag,prange);<br>&nbsp; ...<br><br>
 
Rtf可以用RichEdit.Lines.LoadFromFile()打开。<br>Word用ole。
 
可以用shellexecute函数 &nbsp;要加shellapi
 
多人接受答案了。
 
use ComObj<br>procedure Tf_printpic.SpeedButton1Click(Sender: TObject);<br>var v_doc:Variant;<br>begin<br>&nbsp; try<br>&nbsp; &nbsp; try<br>&nbsp; &nbsp; v_app := GetActiveOleObject('word.application');<br>&nbsp; &nbsp; except<br>&nbsp; &nbsp; v_app := CreateOleObject('word.application');<br>&nbsp; &nbsp; end;<br>&nbsp; &nbsp; v_app.Visible:= True ;<br>&nbsp; &nbsp; v_app.Caption := '装饰工程图片打印';<br>&nbsp; &nbsp; v_app.Options.CheckSpellingAsYouType := False;<br>&nbsp; &nbsp; v_app.Options.CheckGrammarAsYouType := False;<br>&nbsp; &nbsp; {Insert data}<br>&nbsp; &nbsp; if v_app.Documents.Count=0 then v_app.Documents.Add;<br>&nbsp; &nbsp; v_doc:=v_app.Documents.Item(1);<br>&nbsp; &nbsp; if datam.ado_yclqd.FieldByName('ms17').asstring&lt;&gt;'' then<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; DBImage1.CopyToClipboard;<br>&nbsp; &nbsp; v_doc.Sentences.Last.Paste;<br>&nbsp; &nbsp; end;<br>&nbsp; &nbsp; v_doc.Range.InsertAfter(' ' + #13);<br>&nbsp; &nbsp; v_doc.Range.InsertAfter('材料编号: ' + datam.ado_yclqd.Fields.fields[3].AsString + #13); //材料编号的文字<br>&nbsp; &nbsp; v_doc.Range.InsertAfter('图片说明1: ' + datam.ado_yclqd.Fields.Fields[17].AsString + #13);//图片说明1<br>&nbsp; &nbsp; v_doc.Range.InsertAfter('图片说明2:' + datam.ado_yclqd.Fields.Fields[18].AsString + #13);//图片说明2<br>&nbsp; &nbsp; v_doc.Range.InsertAfter('图片说明3: ' + datam.ado_yclqd.Fields.Fields[19].AsString + #13);//图片说明3<br>&nbsp; &nbsp; v_doc.Range.InsertAfter(' ' + #13);<br>&nbsp; &nbsp; v_doc.Range.InsertAfter(' ' + #13);<br>&nbsp; &nbsp; v_doc.Range.InsertAfter(' ' + #13);<br>&nbsp; except<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; messagedlg('图片导出失败!',mtinformation,[mbok],0);<br>&nbsp; &nbsp; &nbsp; v_app.Disconnect;<br>&nbsp; &nbsp; end;<br>&nbsp; end;
 
后退
顶部