我们首先通过一个简单的程序例子来看一下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。
代码如下:
unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, VGCore_TLB; type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
private
{ Private declarations }
public
{ Public declarations }
end; //定义全局变量
var
m_pApp: IVGApplication;
Form1: TForm1; implementation {$R *.dfm} uses
ComObj; //Delphi开发CorelDRAW利用的是COM编程,在这里需要添加COM对象 //打开CDR窗口
procedure TForm1.Button1Click(Sender: TObject);
begin
m_pApp := CreateOLEObject('CorelDRAW.Application.12') as IVGApplication;
//在这里我们利用 CreateOLEObjec 函数来创建新的 CorelDRAW,从而实现打开 CorelDRAW。
m_pApp.Visible := True;
//创建了 CorelDRAW 需要对 CorelDRAW 的可见性进行定义,如果没有这一条,CorelDRAW 将不以窗口形式显现。
end; //关闭CorelDRAW窗口
procedure TForm1.Button2Click(Sender: TObject);
begin
try
m_pApp := GetActiveOleObject('CorelDRAW.Application.12') as IVGApplication;
//获得活动的CorelDRAW对象
m_pApp.Quit;
except
MessageBox(Handle, 'CorelDRAW没有运行', '提示', MB_OK + MB_iconinformation);
end;
end; end.