ダイアログのDLL化
よく使われるダイアログをDLLにすると便利です。また、Delphiで作ったダイアログをC++ Builderなどで容易に使うこともできます。
ダイアログDLLを作るには
インターフェースルーチンの例
インターフェースルーチンは、クラスの外でexport指令を付けて宣言します。
var Dialog1: TDialog1; // インターフェースルーチンの宣言 function GetValue: Integer; export; implementation {$R *.DFM} // インターフェースルーチンの実装 function GetValue: Integer; begin Result := 0; // デフォルトの戻り値 Dialog1 := TDialog1.Create(Application); // インスタンスを作成 try if Dialog1.ShowModal = IDOK then begin // OKボタンを押したとき Result := StrToInt(Dialog1.SpinEdit1.Text); end else begin // Cancelボタンを押したとき // この例では何もしない end; finally Dialog1.Free; // 最後にダイアログボックスを破棄 end;
プロジェクトの例
library DllDialog; // programをlibraryに変更 uses dlg1 in 'dlg1.pas' {Dialog1}; exports GetValue; // インターフェースルーチン {$R *.RES} begin // ここには何も書かない end.
DLLダイアログの呼び出し例
var Form1: TForm1; function GetValue: Integer; external 'DllDialog.dll'; implementation {$R *.DFM} procedure TForm1.cmdExecClick(Sender: TObject); begin Label1.Caption := 'Value = ' + IntToStr(GetValue); end;