delphi中如何在自己的窗口中调用word? delphi中如何在自己的窗口中调用word? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用servers控件组里的wordapplicaiton控件 但是我打开的word在新的窗口中,能不能在本窗口中打开? var picturefile :TFileName; book:Tbook; jhid,zdid,zdmc,FileName,newfile:string; ConfirmConversions, ReadOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate, Revert, WritePasswordDocument, WritePasswordTemplate, Format: OleVariant;begin button1.Enabled := false; //启动word时间可能比较长,不让用户再按打印按钮 book := Query1.GetBook; Query1.GotoBook(book); jhid := Query1.fieldbyname('jhid').AsString; try ConfirmConversions := False; //word中用到的一些参数 ReadOnly := False; AddToRecentFiles := False; PasswordDocument := ''; PasswordTemplate := ''; Revert := True; WritePasswordDocument := ''; WritePasswordTemplate := ''; Format := 0; MSWord:=CreateOleObject('Word.Application'); //启动word程序 newfile := ExtractFileDir(Application.Exename) + '\report\' + jhid + '.doc'; filename := ExtractFileDir(Application.Exename) + '\report\module.doc'; //拷贝一个和module一样的文件 if copyfile(pchar(filename),pchar(newfile),true)= false then begin //如果拷贝失败 新文件可能已经存在,删除之后再拷贝 deletefile(newfile); copyfile(pchar(filename),pchar(newfile),true); end; copyfile(pchar(filename),pchar(newfile),true); MSWord.Documents.Open(newfile,ConfirmConversions,ReadOnly,AddToRecentFiles, PasswordDocument,PasswordTemplate,Revert,WritePasswordDocument, WritePasswordTemplate,Format); except //系统没有安装word软件 MessageDlg('Word may not be installed',mtError, [mbOk], 0); end; Query1.FreeBook(book); 我拷了程序中的一段下来,你自己看看吧!先用word用写一个宏就可以看到了!再把代码拷贝修改到Delphi中就可以了! 用ole控件 Olecontainer1.CreateObjectFromFile('文件名',false); OleContainer1.DoVerb(0); wordapplication能打开word但是是在第二个窗口中打开word,我想在delphi窗口中打开,并且最好去掉word本身的一些菜单 http://expert.csdn.net/Expert/topic/1447/1447372.xml?temp=.1357843我刚刚结的贴子 wjlsmail(计算机质子) ( ) :我看了你的贴子,你那个贴子也是在单独打开word,我的想法是能不能在delphi的窗体中打开word?因为我想让用户将文件保存一个固定的位置,要是用户可以随便保存文件,那我就不知道用户保存在什么位置,以后就没法子调用了 因为我想让用户将文件保存一个固定的位置,要是用户可以随便保存文件 ?word 不是默认保存在“我的文档”中吗 ?没有看懂您的意思 ,真希望 cg1120(代码最优化-§新年祝福你,好运伴着你§) 老师能看到贴子 wjlsmail(计算机质子) 能留下你的qq或者msn? http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_20154907.html这个贴子的内容可能对你有用! http://expert.csdn.net/Expert/ForumList_Search.asp?searchtype=1&bigclassid=53&smallclassid=5301&searchKeys=OleContainer&author=&tabletype=now要看中文的,那也可以呀,在CSDN中就有很多了,我相信这些内容有一些是对你有用的了! 在DelphiX\demos\activex\Olectnrs\olesdi.dpr这就是你要找的答案!打开这个工程运行后点击菜单edit->insertobject选word就行了!接分! 强烈同样:99guo(小兵) 此程序稍微修改一下就行了!有问题请发信息到我的E-mail:[email protected] 高分(或现金)求一分屏技术 关于SendMessage和PostMessage 处理大文本问题,请指教 关于spcomm 全新Real Messenger,世界就看我的... 这个是什么错误?(本来洋文很成问题,请高手指点。) 如何在Delphi用Crystal Report設計報表? 如果删除一个文本文件中的空格行.....? 大家快来看看,这个功能是如何实现的,关于DBCtrlGrid delphi怎么编写串口程序〉? 答对送分!20分 如何把CreatOleObject产生的变量删除? Tmemo取得当前行数如何解决?
picturefile :TFileName;
book:Tbook;
jhid,zdid,zdmc,FileName,newfile:string;
ConfirmConversions, ReadOnly, AddToRecentFiles,
PasswordDocument, PasswordTemplate, Revert,
WritePasswordDocument, WritePasswordTemplate, Format: OleVariant;
begin
button1.Enabled := false; //启动word时间可能比较长,不让用户再按打印按钮
book := Query1.GetBook;
Query1.GotoBook(book);
jhid := Query1.fieldbyname('jhid').AsString;
try
ConfirmConversions := False; //word中用到的一些参数
ReadOnly := False;
AddToRecentFiles := False;
PasswordDocument := '';
PasswordTemplate := '';
Revert := True;
WritePasswordDocument := '';
WritePasswordTemplate := '';
Format := 0;
MSWord:=CreateOleObject('Word.Application'); //启动word程序
newfile := ExtractFileDir(Application.Exename) + '\report\' + jhid + '.doc';
filename := ExtractFileDir(Application.Exename) + '\report\module.doc';
//拷贝一个和module一样的文件 if copyfile(pchar(filename),pchar(newfile),true)= false then
begin //如果拷贝失败 新文件可能已经存在,删除之后再拷贝
deletefile(newfile);
copyfile(pchar(filename),pchar(newfile),true);
end; copyfile(pchar(filename),pchar(newfile),true);
MSWord.Documents.Open(newfile,ConfirmConversions,ReadOnly,AddToRecentFiles,
PasswordDocument,PasswordTemplate,Revert,WritePasswordDocument,
WritePasswordTemplate,Format);
except //系统没有安装word软件
MessageDlg('Word may not be installed',mtError, [mbOk], 0);
end;
Query1.FreeBook(book);
Olecontainer1.CreateObjectFromFile('文件名',false);
OleContainer1.DoVerb(0);
打开这个工程运行后点击菜单edit->insertobject选word就行了!
接分!
此程序稍微修改一下就行了!
有问题请发信息到我的E-mail:[email protected]