转载请注明出处,谢谢!
其实与上篇IDL与C#混合编程实现是差不多的,不同的是Delphi安装IDL控件的方式。如图:






安装好后就会在Custom面板出现TIDLDrawWidget控件,不要忘了添加引用库路径。Delphi代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, IDLDRAWX3Lib_TLB, StdCtrls;
type
TForm1 = class(TForm)
IDLDrawWidget1: TIDLDrawWidget;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function IDLEstr(cmd: string): integer;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
IDLEstr(Edit1.Text);
end;
procedure TForm1.Button2Click(Sender: TObject);
var cmd: string;
begin
cmd := '@print';
IDLEstr('Restore,"print.sav"');//编译程序
IDLEstr(cmd);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
IDLDrawWidget1.IdlPath := 'IDL\include\bin.x86\idl.dll';
IDLDrawWidget1.InitIDL(Self.Handle);
end;
function TForm1.IDLEstr(cmd: string): integer;
var n: Integer;
begin
n := IDLDrawWidget1.ExecuteStr(cmd);
Result := n;
end;
end.
程序:

其中把IDLDrawWidget1.InitIDL(Self.Handle);改成IDLDrawWidget1.InitIDL(IDLDrawWidget1.Handle);就可以把IDL画的图画到窗体上去。
