zoukankan      html  css  js  c++  java
  • Delphi 二次开发 CorelDRAW

    我们首先通过一个简单的程序例子来看一下Delphi对CorelDRAW二次开发有什么样的效果。本程序实现CorelDRAW程序的打开和关闭。

    1.1 Delphi与CorelDRAW连接

    在程序与CorelDRAW进行控制的时候,必须要通过一个桥梁,而这个桥梁需要通过我们的代码来实现。只有实现了程序与CorelDRAW之间的通讯,才能进行下一步的工作。再次我们为您提供一个Delphi连接CorelDRAW的样板代码,每次进行开发的时候您可以通过修改此代码来实现与CorelDRAW之间的连接。

    新建一个工程,然后向新建的工程中加入CorelDRAW类库,步骤如下所示(这里以Delphi 2009 为例,其它类似):

    1.选择菜单"Component"—"Import Component",在对话框中选择Import a Type Component单选按钮,单击Next按钮;

    2.在新跳出的对话框中单击Add(添加)按钮,然后找到CorelDRAW的类型库文件。CorelDRAW类型库文件有版本区分(这里以CorelDRAW X4 为例),说明文字为Corel-Vector Graphics Core XX.0 Type Library,名称为VGCoreAuto.tlb,这个文件保存在“C:Program FilesCorelCorel Graphics XXPrograms”目录下。(C:为默认安装盘,XX为CorelDRAW的版本号),点击Next按钮;

    3.保持默认值,点击Next,选择“Add Unit to Project1.dproj project”,单击Finish按钮完成添加。保存工程到文件夹。

    4.如下图所示,这样我们就在Delphi中成功的添加了CorelDRAW类库。

    5.在窗体上添加两个按钮控件,分别为两个按钮命名为打开和关闭,在代码引用部分添加一下引用:VGCore_TLB。

    代码如下:

     1 unit Unit1;
     2 
     3 interface
     4 
     5 uses
     6   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     7   Dialogs, VGCore_TLB;
     8 
     9 type
    10   TForm1 = class(TForm)
    11     Button1: TButton;
    12     Button2: TButton;
    13   private
    14     { Private declarations }
    15   public
    16     { Public declarations }
    17   end; 
    18 
    19 //定义全局变量
    20 var
    21  m_pApp: IVGApplication;
    22  Form1: TForm1;
    23 
    24 implementation
    25 
    26 {$R *.dfm}
    27 
    28 uses
    29  ComObj; //Delphi开发CorelDRAW利用的是COM编程,在这里需要添加COM对象
    30  
    31 //打开CDR窗口
    32 procedure TForm1.Button1Click(Sender: TObject);
    33 begin
    34   m_pApp := CreateOLEObject('CorelDRAW.Application.12') as IVGApplication;
    35   //在这里我们利用 CreateOLEObjec 函数来创建新的 CorelDRAW,从而实现打开 CorelDRAW。
    36   m_pApp.Visible := True;
    37   //创建了 CorelDRAW 需要对 CorelDRAW 的可见性进行定义,如果没有这一条,CorelDRAW 将不以窗口形式显现。
    38 end;
    39 
    40 //关闭CorelDRAW窗口
    41 procedure TForm1.Button2Click(Sender: TObject);
    42 begin
    43   try
    44     m_pApp := GetActiveOleObject('CorelDRAW.Application.12') as IVGApplication;
    45   //获得活动的CorelDRAW对象
    46     m_pApp.Quit;
    47   except
    48     MessageBox(Handle, 'CorelDRAW没有运行', '提示', MB_OK + MB_iconinformation);
    49   end;
    50 end;
    51 
    52 end.
  • 相关阅读:
    javascript继承对象冒充
    javascript原型prototype(2)
    javascript继承call()和apply实现继承
    javascript继承原型链继承
    javascript原型prototype(3)
    没有宽高的情况下实现水平垂直居中
    TCP协议
    什么是模块化?模块化的好处是什么?
    数组中嵌套数组,转化为一个数组形式/二维数组转化为一维数组
    常见的请求头类型
  • 原文地址:https://www.cnblogs.com/o594cql/p/3403366.html
Copyright © 2011-2022 走看看