我们首先通过一个简单的程序例子来看一下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 Files\Corel\Corel Graphics XX\Programs”目录下。(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.