ダイアログの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;