用C++ Builder实现Word 97自动化
作者 佚名技术
来源 程序设计
浏览
发布时间 2012-06-30
Add(inti); //编辑当前活动文档指定的 段落文字的函数 }; //------------- externPACKAGETForm1*Form1; //------------- #endif Unit1.cpp文件代码为: #include #pragmahdrstop #include"Unit1.h" #include //------------- #pragmapackage(smart_init) #pragmaresource"*.dfm" TForm1*Form1; //------------- __fastcallTForm1::TForm1(TComponent*Owner) :TForm(Owner) { tag=1;//令tag的初值为1, 其将随Button3的点击次数而递增 } //------------- Variant__fastcallTForm1::GetWordObject() { VariantObj1; AnsiStringAppName="Word.Application"; HWNDhPrevApp=::FindWindow(NULL, "MicrosoftWord"); if(!hPrevApp) { Obj1=CreateOleObject(AppName); //Word没启动就启动它返回一自动化对象 } else Obj1=GetActiveOleObject(AppName); //否则返回正在运行的实例自动化对象 Obj1.OlePropertySet("Visible",true); returnObj1; } void__fastcallTForm1::Button1Click(TObject*Sender) { intj; V=GetWordObject(); //获得Word97自动化对象Application Vdocuments=V.OleFunction("Documents"); //通过Application获取Documents对象 if(OpenDialog1->Execute()) //使用Documents对象的Open方法 打开文件,并返回Document对象 Vdocument1=Vdocuments.OleFunction ("Open",OpenDialog1->FileName); j=Vdocument1.OleFunction("ComputeStatistics",2); //计算打开文档的页数 Label1->Caption="文件"+ Vdocument1.OlePropertyGet("Name") +"页数是:"+IntToStr(j); } //------------- void__fastcallTForm1::Button3Click(TObject*Sender) { inti,j; i=tag; Vactive=V.OleFunction("ActiveDocument"); //获取Application的ActiveDocument对象 j=Vactive.OleFunction("ComputeStatistics",4); //计算当前文档的段落数 //的的Paragraphs集合对象增加一段 Vactive.OleFunction("Paragraphs").OleFunction("Add"); i=j+i;//当前文档被编辑的段落序号 Add(i);//调用编辑当前活动文档 指定的段落文字的函数 Memo1->Clear();//清除Memo1的内容 tag=tag+1; } //-------------- void__fastcallTForm1::Button2Click(TObject*Sender) { V=GetWordObject(); Vdocuments=V.OleFunction(""); Vdocument2=Vdocuments.OleFunction("Add"); //使用Documents对象的Add方法新建文档 Vdocument2.OlePropertySet("Password","12345"); //设置新建文档的口令 } //-------------- void__fastcallTForm1::Add(inti) { VariantV1; //设置被编辑段的内容、字体大小、 颜色及是否斜体 V1=((Vactive.OleFunction("Paragraphs")). OleFunction("Item",i)).OleFunction("Range"); (V1.OleFunction("Font")).OlePropertySet("Italic",true); (V1.OleFunction("Font")).OlePropertySet("Size",18); (V1.OleFunction("Font")).OlePropertySet("ColorIndex",6); (V1.OleFunction("Font")).OlePropertySet("Size",18); V1.OlePropertySet("Text",Memo1->Text); } //------------- void__fastcallTForm1::Button5Click(TObject*Sender) { VariantVshape,Vactive1 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 《深度探索C++对象模型》读书笔记(5)下一篇: 《深度探索C++对象模型》读书笔记(6)
关于用C++ Builder实现Word 97自动化的所有评论