将Word嵌入Delphi中

简单的TOleContainer控件内嵌WORD   在做项目的时候,很容易碰到操作WORD的情况,delphi提供一种简单的方式利用TOleContainer控件内嵌WORD。如果在单一窗体里调用OLE很容易发生OLE把整个窗体都占据的情况。建立专用的OLE窗体来避免这样的情况放生,使OLE显示在第一个窗体指定的位置(panel)1.建立工程program Prj_OleContainer;usesForms,Unit_OleCon 阅读详情

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://bigpower.blog.51cto.com/209892/90287

 

unit Main;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls,Comobj;
type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Panel1Resize(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    FComApp:OleVariant;
    gWaveHwnd:Hwnd;
  public
    { Public declarations }
    procedure SetParentWindow(pParent: TWinControl);
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var
  Word : Variant;
begin
  FComApp := CreateOLEObject('Word.Application');
  FComApp.Documents.Open(extractfilepath(Application.ExeName)+'/test.doc',false);
  FComApp.Visible := True;
  Label1.Caption := FComApp.ActiveWindow.Caption;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
  SetParentWindow(Panel1);
end;
procedure TForm1.Panel1Resize(Sender: TObject);
begin
  if gWaveHwnd<>0 then
  begin
    FComApp.ActiveWindow.Height := Panel1.Height;
    FComApp.ActiveWindow.Width := Panel1.Width;
    Windows.MoveWindow(gWaveHwnd,0,0,Panel1.Width,Panel1.Height,false);
  end;
end;
procedure TForm1.SetParentWindow(pParent: TWinControl);
var
  lWaveHwnd : Hwnd;
  lWidth, lHeight: Integer;
  lWindowCaption: String;
begin
  //lwaveHwnd := FindWindow(nil,'Microsoft Word');//窗口标题
  lWindowCaption := FComApp.ActiveWindow.Caption;
  lwaveHwnd := FindWindow(nil,pAnsiChar(lWindowCaption+' - Microsoft Word'));//窗口标题
  //lwaveHwnd := FindWindowW(nil,pWideChar(String(FComApp.ActiveWindow.Caption)));//窗口标题
  Windows.SetWindowLong(lWaveHwnd,GWL_STYLE,GetWindowLong(lWaveHwnd, GWL_STYLE)
                         and not (WS_CAPTION or WS_SYSMENU));
  Windows.SetParent(lWaveHwnd,pParent.Handle);
  gWaveHwnd:=lWaveHwnd;
  lWidth := pParent.Width;
  lHeight := pParent.Height;
  Windows.MoveWindow(lWaveHwnd,0,0,lWidth,lHeight,false);
  //mParent := pParent;
end;
end.
本文出自 “delphi研究” 博客,请务必保留此出处http://bigpower.blog.51cto.com/209892/90287

delphi中OleContainer加载word文档的几个问题 delphi中有时候需要将word文档以数据流的形式保存到数据库中然后展现出来,同时又需要修改word文档进行实时保存。以下以例子展示 1.通过oleContainer导入外部word文档并保存为数据流 procedure   LoadWordToStrem; var   sFile :string;   vStream :TMemoryStream; beg 阅读详情

相关推荐

C++Builder文字处理控件TRichView

TRichView 是一套支持Delphi/C++Builder的控件,有和Word相似的功能,主要用于编辑、显示和打印超文本文档。该控件支持各种各样不同的属性(字体、下标和上标,自定义下拉列表,文本背景颜色)。文档中可以包含表格、图片、在图像列表中所选取的图像、任意的 Delphi  控件、文档居左、文档居右、文档居中或者是段落排列的排版、多级项目符号和编号、自定义页边空白和缩进样式、统一字符编

1560

运用Delphi设计Office_Word插件

这是我几年前开发WORD插件工具参考的一份PDF文档资料。

delphi窗体嵌入word

delphi xe2 窗体嵌入word

Delphi编写ActiveX控件及程序中嵌入word方案

ActiveX控件编写 1.ActiveX控件由来 在创建包括ActiveX程序时,主要的工作就是组件,一个可以自足的在ActiveX网络(现在的网络主要包括 Windows和Mac)中任意运行的程序。这个组件就是ActiveX近控件。ActiveX是Microsoft为抗衡Sun Microsystems的JAVA技术而提出的,此控件的功能和JAVA applet功能类似。 OCX代...

weixin_34178244的博客 516

DelphiWord之间的融合技术

DelphiWord之间的融合技术作者:cwxiao888 来源:CSDNDelphiWord之间的融合技术一、VBA代码含义Microsoft Word是一个集成化环境,是美国微软公司的字处理系统,但是它决不仅仅是一个字处理系统,它集成了Microsoft Visual Basic,可以通过编程来实现对Word功能的扩展。Microsoft Vis

samchoy的专栏 983

Delphi2010连接Firebird2.1使用dbExpress

本代码在:WinXp Pack 3 + Embarcadero Delphi 2010 Version 14.0.3513.24210 火鸟数据库嵌入版Firebird V2.1下测试通过。

Delphi XE 使用嵌入版Firebird数据库,演示“增、删、改、查”

Delphi XE 使用嵌入版Firebird数据库,演示“增、删、改、查”。 Delphi源代码 测试环境: Embarcadero Delphi XE Version 15.0.3890.34076 Firebird 2.5.9 (Windows Build)

……OleContainer中嵌入WORD后,用什么办法显示滚动条???……

……OleContainer中嵌入WORD后,用什么办法显示滚动条???…… VCL组件开发及应用http://www.delphi2007.net/DelphiVCL/html/delphi_20061224024201159.html 如题,谢谢 同时保持原有左边窗口不变! 放一个ScrollBox,然后把OLE放上去. OleContainer1.CreateObje...

aibi9196的博客 273

Delphi XE2 预览 Office/WPS 文件

Delphi XE2 预览 Office/WPS 文件 去发现同类优质开源项目:https://gitcode.com/ 简介 本仓库提供了一个 Delphi XE2 的资源文件,用于预览 Office 或 WPS 文件,支持 Word、Excel、PPT 等常见办公文件格式。 功能特点 支持多种格式:Word、Excel、PPT 等; 窗体嵌入:可以方便地将预览窗口嵌入Delphi 应用程...

gitblog_06795的博客 329

delphi操作word

====================================================== 注:本文源代码点此下载 ====================================================== delphi操作word 一、delphi程序启动word 采用createoleobjects的方法来启动word,调用vba代码,具体实现

javazhuanzai的专栏 465
上一篇: ownerDraw ListView 的标题
下一篇: Delphi的TThread类
iseekcode
博客等级 码龄18年 36粉丝 14原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值