Delphi には、C に似たプリコンパイル済み命令もあります。このタイプの命令は現在の単一ファイルでのみ有効ですが(作成者がこのタイプの命令の実際の使用法を完全に理解していない可能性もあります)、このタイプの命令は、現在の単一ファイルでのみ有効です。この命令は、複数バージョンのコンパイルに役立ちます。プロダクション作業 (標準バージョンから学習バージョンを公開するなど) には非常に有効です。
1つ。手順の紹介:
1. DEFINE ディレクティブ:
形式: {$DEFINE 名}
説明: 現在のユニットで有効なシンボル (Symbol) を定義するために使用されます。定義済み
その後、IF DEF 命令と IFNDEF 命令を使用して、シンボルが存在するかどうかを確認できます。
2. UNDEF コマンド:
形式: {$UNDEF 名}
説明: 現在のユニットに定義されているシンボル (Symbol) をキャンセルするために使用します。このディレクティブと DEFINE
一緒に使用されます。
3. IFDEF ディレクティブ:
形式: {$IFDEF 名}
注: このディレクティブの後の名前が定義されている場合、このディレクティブの後の {$ELSE} または {$ENDIF} までのコード セグメントがコンパイルされます。
4. IFNDEF ディレクティブ:
形式: {$IFNDEF 名}
注: このディレクティブの後の名前が定義されていない場合は、このディレクティブの後の {$ELSE} または {$ENDIF} までのコード セグメントがコンパイルされます。
5. IFOPT 命令:
形式: {$IFOPT スイッチ}
注: この命令の後のスイッチが設定されている場合、この命令の後の {$ELSE} または {$ENDIF} までのコード セグメントがコンパイルされます。
例: {$IFOPT R+}
Writeln('コンパイル時に範囲チェックスイッチをオンにする');
{$ENDIF}
6. ELSE 命令:
形式: {$ELSE}
説明: 接頭辞 Ifxxx の条件式を判断して、命令と {$ENDIF} の間のコード セグメントをコンパイルするか無視するかを決定します。
7. ENDIF ディレクティブ:
形式: {$ENDIF}
説明: Ifxxx と連携して、条件付きプリコンパイル済みセグメントのソース コード セグメントの終了位置を示します。
二。例:
さまざまなコンパイル シンボルを事前定義することで、コード セグメントを使用せずにコンパイル作業を実行するサンプルを作成します。
1. 新しい Delphi プロジェクトを作成し、Unit1 ユニットのフォームに Button ボタンを追加します。
2. 次のようにプログラムを書きます。
ユニットユニット1;
インタフェース
用途
ウィンドウ、メッセージ、SysUtils、クラス、グラフィックス、コントロール、フォーム、ダイアログ、
StdCtrls;
タイプ
TForm1 = クラス(TForm)
ボタン 1: T ボタン;
PROcedure FormCreate(Sender: TObject);
プロシージャ Button1Click(送信者: TObject);
プライベート
{プライベート宣言}
公共
{公的宣言}
a : 文字列。
終わり;
変数
フォーム1: TForm1;
実装
{$R *.DFM}
{$DEFINE AAA} // 定義行。
プロシージャ TForm1.FormCreate(送信者: TObject);
始める
a := 'その他';
{$IFDEF AAA}
a := 'AAA';
{$ENDIF}
{$IFDEF BBB}
a := 'BBB';
{$ENDIF}
終わり;
プロシージャ TForm1.Button1Click(送信者: TObject);
始める
キャプション := a;
終わり;
終わり。
{注: 太字のテキストは入力されたコードです}
3. コンパイルして実行した後、 ボタンを押すと、フォームのタイトル バーに「AAA」が表示されます。プログラムはステートメント a := 'AAA' をコンパイルします。
4. 行を定義するプログラム セグメントを変更します。
に変更したとき
{$BBB の定義}
コンパイルして再度実行すると、フォームのタイトル バーに「BBB」が表示されます。プログラムはステートメント a := 'BBB' をコンパイルします。
行の定義を解除するとき、または行を変更するとき
{$何も定義しない}
または他の名前でコンパイルして再度実行すると、フォームのタイトル バーに「その他」が表示されます。プログラムはステートメント a := 'Other' のみをコンパイルします。
三つ。バージョンをすばやく作成および変更する方法:
プリコンパイル命令を使用すると、同じプログラムの複数のバージョンを作成するときに、各バージョンで異なるユニットを検索し、統一バージョン シンボル (シンボル) を順番に定義し、条件付きプリコンパイル命令をプログラム セグメントに追加するだけで済みます。実際のコンパイル中に異なるプログラム部分をコンパイルします。これは、プログラムの標準化 (統一バージョン シンボルの定義) と機密性 (異なるバージョンが異なるプログラム部分をコンパイルする) に良い影響を与えます。
ただし、この種のプリコンパイル済みディレクティブは現在のユニットに対してのみ動作するため、共通のユニットにバージョン記号を一度に定義することはできず、各ユニットで統一したバージョン記号を定義する必要があるという不便さがあるため、バージョンを変更する場合には、各バージョンの正確性を確認するには、すべてのバージョン シンボルが変更されていることを確認する必要があります。これには、Delphi IDE の「検索」機能を使用できます。 Files..." (複数のファイル内の文字列を検索) は、バージョン シンボルを定義するすべてのファイルと場所を検索し、それらを順番に変更して、すべての場所が修正されていることを確認します。