当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·如何生成chm格式的文档    »显示摘要«
    摘要: 编写的类如何生成chm格式的文档帮助 ......
    摘要: 强调一下是用asp,数据库是oracle。 ......


如何用代码实现将剪切板的内容粘贴到word中并重新全选再复制回剪切板

如何用代码实现将剪切板的内容粘贴到word中并重新全选再复制回剪切板???      
   
  如何用代码实现将剪切板的内容粘贴到word中并重新全选再复制回剪切板???    
  这样做的目的是交将网页的内容完整的粘贴到rxrichedit上去,  
  如果直接用复制。粘贴的话就只有文字了!所有只好通过word的剪切板来实现了,不知  
  各位大侠可有什么好主意!  
     
 

NO.1   作者: Birch

Delphi与Word之间的融合技术   (0分)  
  [b]一、VBA代码含义[/b]  
  Microsoft   Word是一个集成化环境,是美国微软公司的字处理系统,但是它决不仅仅是一个字处  
  理系统,它集成了Microsoft   Visual   Basic,可以通过编程来实现对Word功能的扩展。  
  Microsoft   Visual   Basic在word中的代码即Word的宏,通过编写Word宏,可实现一些文档处理的  
  自动化,如实现文档的自动备份、存盘等,可扩展Word文档的功能,因此,能够充分利用Word的  
  特性,甚至使Word成为自己软件的一部分。  
  Word的宏既有有利的一部分,因为它能够帮助我们实现文档的自动化,但是Word的宏也不是纯粹  
  的有利,有时它可能危害我们的文档、计算机系统甚至网络,从最开始的Taiwan   NO1宏病毒到现  
  在的Melissa宏病毒,从最开始的简单的提示,耗尽系统资源到现在的乱发电子邮件,将个人的  
  信息发送到网络上,甚至向硬盘的Autoexec.bat(自动批处理文件)中添加Deltree   C:   -y,破坏  
  整个Windows系统。  
   
  [b]二、Word中内嵌的Com技术[/b]  
  可以说Word是对Com技术支持最好的软件,这样说似乎是太极端了一点,但是Word提供的强大的编  
  程接口技术却能够是我们通过程序控制Word的任何一部分。无论是文件的打开、存盘、打印还是文  
  档中表格的自动绘制。  
  通过编程软件,可以灵活的操纵word,这里只以Borland   Delphi为例,进行详细描述:  
  1、   在Delphi中调用Word软件/文件的方法  
  在Word中调用Word软件,归纳起来有三种方法:  
  。通过Delphi的控件TOleContainer   将Word嵌入  
  a.使用Delphi提供的Servers控件调用Word,使用Word的属性  
  b.通过真正的Com技术,将Office软件目录中文件MSWORD9.OLB中的类库全部导入Delphi中,  
  利用Com技术编程  
  c.使用CreateOleObject将启动Word,然后以Ole方式对Word进行控制。  
   
  2、   对几种方法的难易程度的判别  
   
  a.通过Delphi的控件TOleContainer   将Word嵌入  
   
  这是最简单的Ole嵌入,能够直接将Word文档调用,只需要使用ToleContainer.Run就可以将Word文  
  档直接启动。且这样启动的Word文档与Delphi程序是一个整体,但是它存在不可克  
  服的缺点,即不能通过Delphi控制Word文档,也就不能实现将灵活操纵Word的目的。  
   
  b.使用Delphi提供的Servers控件调用Word,使用Word的属性  
  使用Delphi的Servers控件来操纵Word,在编程时Delphi能够实现代码提示,总体上看能够较好的实  
  现Delphi对Word的控制,但是还有一些Word的功能不能在Delphi中调用。  
  且实现功能时本来在VBA代码中可选则参数在Delphi调用的时候必须添加,否则,连编译都不能通过。  
  本方式启动的Word与Delphi程序分属两个窗体。  
  此办法仅能作为一个参考。  
   
  c.通过真正的Com技术,将Office软件目录中文件MSWORD9.OLB中的类库全部导入Delphi中,  
  利用Com技术编程  
  利用真正的Com技术,将MsWord9.OLD文件类库导入,然后利用Com技术进行使用。  
  整体上类似使用Delphi的Servers控件,稍微比Servers控件麻烦,优缺点与Servers控件相同。  
   
  d.使用CreateOleObject将启动Word,然后以Ole方式对Word进行控制。  
  本办法是使用以CreateOleObjects方式调用Word,实际上还是Ole,但是这种方式能够真正做到完全  
  控制Word文件,能够使用Word的所有属性,包括自己编写的VBA宏代码。  
  与Servers控件和com技术相比,本方法能够真正地使用Word的各种属性,和在VBA中编写自己的代码  
  基本一样,可以缺省的代码也不需要使用。  
  本方式启动的Word与Delphi程序分属两个窗体。  
  缺点是使用本方法没有Delphi代码提示,所有异常处理均需要自己编写,可能编写时探索性知识比较多。  
   
  [b]三、Word宏编辑器[/b]  
  Word能够真正地进行VBA代码的编辑,可以编写窗体、函数。  
  进入Word宏编辑器的方法:工具->宏->Visual   Basic编辑器,可进入Visual   Basic编辑器界面。  
  Word的Visual   Basic编辑器界面和真正的Visual   Basic编辑器基本相同,在此不再向详述。  
  在VBA代码中,可以添加用户窗体、模块、类模块。用户窗体、模块、类模块的概念和Visual   Basic  
  完全相同。注释也与Visual   Basic完全相同。  
  可以将光标停留在窗体、模块的任何一个子程序上,直接按“F5”运行当前子程序。  
   
  [b]四、Word的宏的概述[/b]  
  Word充分地将文档编辑和VB结合起来,真正地实现文档的自动化。使用Word编程,类似于使用  
  Visual   Basic,所不同的是,在Word中,能够直接运行某一个子程序,直接看见结果,Word的宏,  
  只能解释运行,而Visual   Basic,现在已经能够编写成真正的机器码,从代码的保护上来说,应该尽  
  可能地减少Word的VBA代码数量,尤其是关键的代码。  
  VBA宏,可分成四种:  
  1、   和命令名相同的宏  
  如FileSave,FileOpen,如果在VBA代码中包含与Word同名的函数,则直接执行这些VBA代码,忽略Word  
  本身的命令。  
  2、   Word内特定的宏  
  这些宏包含AutoExec、AutoNew、AutoOpen、AutoClose,AutoExit。  
  如果VBA代码中含有这些名称的函数,则满足相应的条件,相应代码就自动执行。  
  3、   相应事件的VBA宏  
  这些宏是由事件触发的宏,如Document_Close在文档关闭的时候触发事件,Document_New在新建文档的时  
  候触发,Document_Open在打开文档的时候触发。  
  4、   独立的宏  
  自己编写的VBA代码,即不属于上面几种情况的VBA代码,可以被其他VBA代码调用,更重要的是,可以被  
  其他程序调用。  
  这样,我们就可以屏弃Word自动执行的宏,通过Delphi直接调用相应宏来达到目的。  
  [b]五、Word命令宏的详细描述[/b]  
  Word本身的命令函数包含很多,但是无论是word联机帮助还是MSDN帮助,都没有这方面的介绍,因此只能  
  凭自己的实验取探索,初步探测的函数如下:  
  宏名   解释   注释  
  FileNew   新建    
  FileNewDefault   新建空白文档    
  FileSaveAs   另存为    
  FileOpen   打开    
  FileClose   关闭    
  FilePrint   打印    
  FilePrintPreview   打印预览    
  ToolsCustomize   工具栏里面的自定义    
  ToolsOptions   工具选项    
  ToolsRevisions   突出显示修订    
  ToolsReviewRevisions   接受或拒绝修订    
  ToolsRevisionMarksAccept   接受修订    
  ToolsRevisionMarksReject   拒绝修订    
  ToolsRevisionMarksToggle   修订    
  ToolsMacro   宏    
  ToolsRecordMacroToggle   录制新宏    
  ViewSecurity   安全性    
  ViewVBCode   查看VB编辑器环境    
  FileTemplates   模板和可加载项    
  ToolsProtectUnprotectDocument   解除对文档的保护    
  InsertHyperlink   插入超级链接    
  EditHyperlink   编辑超级链接    
  DeleteHyperlink   删除超级链接    
  EditLinks   查看、删除链接    
  EditPasteAsHyperlink   粘贴超级链接    
  FormatStyle   样式    
  EditBookMark   书签    
   
     
  yzhshi   (2001-11-18   17:54:00)      
  [b]这是我自己写的,结合自己的经验,在这里贡献出来,供大家共享。  
  里面有很多用词、观点也许不是特别确切,希望大家指出。  
  过几天再将一些具体的代码写出来。[/b]    
     
  yzhshi   (2001-11-18   18:03:00)      
  [center][b]OleWord时一些用用的代码[/b][/center]  
  [center]yzhshi@263.net[/center]  
   
  [b]一、Delphi程序启动Word[/b]  
  采用CreateOleObjects的方法来启动Word,调用VBA代码,具体实现过程为:  
  首先使用GetActiveOleObject(Word.Application)判断当前内存中是否存在Word程序,如果存在,  
  则直接连接,如果没有Word程序,则使用CreateOleObject(Word.Application)启动Word  
   
  [b]二、Delphi程序新建Word文稿[/b]  
  格式:WordDocuments.Add(Template,NewTemplate,DocumentType,Visible)  
  Template:   使用模板的名称,  
  NewTemplate:   新建文档的类型,True表示为模板,False表示为文档  
  DocumentType:   文档类型,默认为空白文档  
  Visible:   打捞的窗口是否可见  
   
  举例:Doc_Handle:=Word_Ole.Documents.Add(Template:=C:\Temlate.dot,NewTemplate:=False);  
   
  [b]三、Delphi程序打开Word文稿[/b]  
  格式:WordDocuments.Open(FileName,ConfirmConversions,ReadOnly,PassWordDocument,  
                                                    PasswordTemplate,Revent,WritePasswordDocument,WritePassWordTemplate,  
                                                    Format,Encoding,Visible)  
   
  FileName:   文档名  
  Confirmconversions:   是否显示文件转换对话框  
  ReadOnly:   是否以只读方式打开文档  
  AddToRecentFiles:   是否将文件添加到"文件"菜单底部的最近使用文件列表中  
  PassWordDocument:   打开此文档时所需要的密码  
  PasswordTemplate:   打开此模板时所需要的密码  
  Revert:   如果文档已经,是否重新打开文档  
  WritePasswordDocument:   保存对文档更改时所需要的密码  
  WritePasswordTemplate:   保存对模板进行更改时所需要的密码  
  Format:   打开文档时所需使用的文件转换器  
  Encoding:   所使用的文档代码页  
  Visible:   打开文档的窗口是否可见  
   
  举例:  
  Doc_Handle:=Word_Ole.Documents.open(FileName:=Doc_File,ReadOnly:=False,  
                          AddToRecentFiles:=False);  
   
  [b]四、Delphi程序保存Word文稿[/b]  
  格式:WordDocuments.SaveAs(FileName,   FileFormat,   LockComments,   Password,  
                                                      AddToRecentFiles,   WritePassword,   ReadOnlyRecommended,    
                                                      EmbedTrueTypeFonts,   SaveNativePictureFormat,   SaveFormsData,    
                                                      SaveAsAOCELetter)  
   
  FileName:                             文件名。默认为当前文件夹和文件名。  
  FileFormat                             文档保存的格式。  
  LockComments                         如果为   True,则此文档只允许进行批注。  
  Password                                 打开文档时的口令。  
  AddToRecentFiles                 如果为True,则将文档添至"文件"菜单中最近使用的文档列表中。  
  WritePassword                       保存对文档的修改所需的

NO.2   作者: netlib

复制到word小例  
  var  
          Word:Variant;  
  begin  
          Word:=CreateOLeObject(Word.application);  
          Word.visible:=True;  
          Word.documents.add;  
   
          Richedit1.SelAttributes.Color   :=   clRed;  
          Richedit1.SelAttributes.Style   :=   [fsBold];  
          Richedit1.lines.Add(公式名称:编辑);  
          Richedit1.SelStart:=14+Length(trim(公式名称:编辑));  
          Richedit1.Tag:=Richedit1.SelStart-1;  
          Richedit1.SelLength:=4;  
          Richedit1.SelectAll;  
          Richedit1.CopyToClipboard;  
          Word.Selection.Paste;  
  end;  
   
  要复制回来那就是  
    word.selection.copy;  
    Richedit1.PastefromClipboard;

NO.3   作者: deldelmeme979

Word全选并粘贴:  
          AppWord.Selection.WholeStory;  
          AppWord.Selection.Paste;  
 


    摘要: 明天就是区赛了,我现在就要去那里准备了。努力啊,我有实力的,调整好心态,就能得第一了!!!!!!大家祝福我吧! ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE