BorlandDelphi

Delphiとは

DelphiはBorland社のObject Pascalコンパイラで、 使いやすいGUI開発環境として人気があります。

DelphiからTclを呼び出す

通常CからTclを呼び出すときはヘッダファイルtcl.hをincludeすることによって Tcl_CreateInterpなどの関数が呼び出せますが、 Delphiにはこのtcl.h相当のものが存在しないので 関数宣言を自分で書いてやる必要があります。

以下の例はBorland C++ 5.5.1でコンパイルしたTcl 8.4.5と Delphi 6 Personalで動作を確認。

// DelphiからTclを呼び出す
// ボタンを押すとボタンのキャプションに '8' と表示
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;
 
type freeProc = procedure(blockPtr: pChar);
 
type Tcl_Interp = record
  result: pChar;
  freeProc: freeProc;
  errorLine: Integer;
  end;
 
type pTcl_Interp = ^Tcl_Interp;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
function _Tcl_CreateInterp(): pTcl_Interp; cdecl; external 'tcl84.dll';
function _Tcl_Eval(interp: pTcl_Interp; expr: pChar): Integer; cdecl; external 'tcl84.dll';
function _Tcl_GetStringResult(interp: pTcl_Interp): pChar; cdecl; external 'tcl84.dll';
 
procedure TForm1.Button1Click(Sender: TObject);
var interp:pTcl_Interp;
begin
  interp := _Tcl_CreateInterp();
  _Tcl_Eval(interp, 'expr 3 + 5');
  Button1.Caption := _Tcl_GetStringResult(interp);
end;
 
end.

Tslc (Tcl Scripting Language Components)

Tslcは上記のようなTclとDelphiとのインターフェイスを もっとDelphiに統合された形で提供してくれる。

制限事項

関連リンク


JapaneseTclWiki
powered by TickleWiki