スポンサードリンク
当ページは、DelphiARX2002 のプログラム開発をする上で、Borland Delphi の基本的な操作や設定について知っておくべき事項をまとめています。
本説明では、Borland Delphi6 (エディションは問わず)での操作となっていますが、基本的に他のバージョンでも同様ですので、実際に操作しながら確認されるとよいでしょう。
また、説明は Delphi6 を起動した直後からとなっています。
再構築の操作方法 - 実行ファイルの作り方
外部実行ファイルの指定方法 - デバッグ実行の仕方
ARX用プロジェクトの条件定義の設定方法
デバッグ版とリリース版の切替え方法
デバッグ時にブレイクポイントで止める方法
なお、当ページで説明する Borland Delphi とは、Delphi5、Delphi6、Delphi7 までを示しますので、これ以降のバージョンも同じとは限りません。
Visual C++ などで「リビルド」と呼んでいる操作が、Delphi の「再構築」です。 再構築には2つあり、1つが単独のプロジェクトを再構築する方法で、もう一つが複数のプロジェクトを開いている際にすべてのプロジェクトを再構築する方法です。 1つのプロジェクトしか開いていない場合は、どちらの再構築も同じことになります。 再構築を実施すると、各ユニットをコンパイル後、リンクして最終的な実行ファイルを生成するので、通常の使い方としては、コンパイルや構築は使わずに「再構築」のみ実施すれば、実行ファイルが出来上がることになります。
DelphiARX2002 で再構築が正常に行われると、拡張子「.drx」というファイルを生成します。
また、同一ファイル名の拡張子「.arx」も自動的に生成されますが、この .arx ファイルは、ARXプロジェクトの再構築で作成された実行ファイルではなく、DelphiARX2002 AppWizard が自動作成する共通のランタイムファイルです。
AutoCAD へのロード順序とファイルの関係
AutoCAD の APPLOAD で読み込み →(利用者がファイルを指定)→ yourprogram.arx →(同一フォルダ内のdrxファイルを自動ロード)→ yourprogram.drx (あなたが作った実行ファイル)
ARXアプリケーションの実行ファイルは、「.EXE」のような単独のアプリケーションではなく、「.DLL」と同じダイナミックリンクライブラリとなります。
このため、プロジェクトをデバッグ実行するためには、プロセスの親となる「.EXE」のアプリケーションを指定しなければなりません。
このアプリケーションとは、AutoCAD の ACAD.EXE や AutoCAD LT の ACLT.EXE となります。
デバッグ実行を可能にするため、実行時引数にてホストアプリケーションを指定します。
なお、Delphi には「デバッグ実行」という操作項目はありませんが、デバッグの設定状態で再構築したプログラムを「実行」することを「デバッグ実行」と呼びます。
デバッグ実行をする際は、「実行時の引数」ダイアログで、ホストアプリケーションに AutoCAD2000 から AutoCAD2002 の場合は ACAD.EXE を、AutoCAD LT2000 から AutoCAD LT2002 の場合は ACLT.EXE をフルパスで指定してください。 なお、AutoCAD LT でデバッグ実行する前には、先に LT/com2002 を起動した状態にしてから、デバッグ実行を始めてください。 (デバッグ実行時に LT/com2002 のアドインが失敗する場合は、LT/com2002 の環境設定でインターバル値を小さくしてアドインできるようにする必要があります。)
ホストアプリケーションを指定して Delphi のデバッグ実行をすると AutoCAD が起動しますが、そのままではARXアプリケーションは実行されていません。 AutoCAD ( AutoCAD LT ) が起動した後に、APPLOAD コマンドで作成したARXアプリケーションの実行ファイル(AutoCAD の場合は .arx ファイル、AutoCAD LT の場合は .drx ファイル)をロードする必要があります。
ARX用プロジェクトの条件定義には、デバッグ時に使う「DARXDEBUG」という値を設定することができます。(DelphiARX2000i までの DEBUG が DARXDEBUG に変わりました) この値は、ARX用プロジェクトを開いた状態にしてから、Delphi のメニューで「プロジェクト」→「オプション」を開き、「ディレクトリ/条件」ページにて設定することができます。(下図) なお、製品としてリリースする際は、条件定義の「DARXDEBUG」を取り除いてから再構築しなければなりません。
Borland Delphi 7 までは、Cコンパイラのように「デバッグ実行」「実行」といった別々の操作はなく、「実行」という操作1つだけとなります。
これは、「デバッグモード」「リリースモード」の個別設定がないためで、Delphi では1つの設定しか持たないため、デバッグするかリリースするかで設定状態を切り替えてやる必要があります。
再構築した状態をデバッグモードにするかリリースモードにするかの切り替えは、プロジェクトを開いた状態にしてから、Delphi のメニューで「プロジェクト」→「オプション」を開き、「コンパイラ」ページにて設定します。
デバッグ状態にしてホワイトボックステストを実施する際は、下記のように「デバッグ」の設定にチェックをつけてから再構築を行い、実行します。(これをデバッグ実行といいます)
開発が完了し、リリースモードにする際は、下記の「デバッグ」の枠内にあるチェックを全て外した状態にしてから再構築を行ってください。
リリースモードにしないで作成した実行ファイルを配布した場合、Delphi がインストールされていない環境では正常動作しないことがあります。
また、次項についてもデバック時とリリース時で切り替えの必要な項目になりますので同時に確認ください。
Borland Delphi 6 や Delphi 7 で、DLL プロジェクトのデバッグ時(上記6項目の設定済後も)にブレイクポイントで停止せずに、デバッグできないことがあります。
これを正常にブレイクポイントで停止させ、ステップ実行をできるようにするためには、デバッグ情報を付加する設定をして再構築する必要があります。
デバッグ情報の付加設定は、6項目と同じくプロジェクトを開いた状態にしてから、Delphi のメニューで「プロジェクト」→「オプション」を開き、「リンカ」ページにて設定します。
デバッグ状態にしてホワイトボックステストを実施する際は、下記のように「EXE/DLL オプション」のいずれかの設定にチェックをつけてから再構築を行い、実行します。
どちらの設定をすればよいかわからない場合は、両方ともチェックをつけても構いません。
開発が完了し、リリースモードにする際は、下記の「EXE/DLL オプション」の枠内にあるデバッグ情報の付加設定を全て外した状態にしてから再構築を行ってください。
リリースモードにしないで作成した実行ファイルを配布した場合、デバッグ情報が付加されているためファイルサイズが大きくなったり動作に悪影響を与えます。