私のホームページ:http://www.tommstudio.com/
Delphiでは、Cと同様の命令も事前に拡張された手順があります。このタイプの命令は現在の単一ファイルでのみ有効です(著者がこのタイプの指示の真の使用法を完全に理解していない可能性があります)、このタイプのこのタイプのこのタイプ指示は、マルチバージョンのためのものです(標準バージョンからバージョンの学習など)。
1つ。命令の紹介:
1。指示の定義:
フォーマット:{$ define name}
説明:現在のユニットで有効なシンボル(シンボル)を定義するために使用されます。定義の後、IFDEFおよびIFNDEF命令を使用して、シンボルが存在するかどうかを判断できます。
2。 UNDEF指令:
フォーマット:{$ undef name}
説明:現在のユニットで定義されているシンボル(シンボル)をキャンセルするために使用されます。この指令は、Defineと組み合わせて使用されます。
3。 ifdef命令:
フォーマット:{$ ifdef name}
説明:ディレクティブの後の名前が既に定義されている場合、ディレクティブがコンパイルされた後、コードセグメントは{$ else}または{$ endif}までコンパイルされます。
4。 IFNDEF命令:
フォーマット:{$ ifndef name}
注:ディレクティブの後の名前が定義されていない場合、ディレクティブがコンパイルされた後、コードセグメントは{$ else}または{$ endif}までコンパイルされます。
5。 ifopt命令:
フォーマット:{$ ifoptスイッチ}
注:この命令後のスイッチが設定されている場合は、命令がコンパイルされた後、{$ else}または{$ endif}までコードセグメントをコンパイルします。
例えば:
|
6。その他の指示:
フォーマット:{$ else}
注:プレフィックスIFXXXの条件付き式を審査することにより、命令と{$ endif}の間のコードセグメントをコンパイルまたは無視する必要があるかどうかを判断します。
7。 Endif命令:
フォーマット:{$ endif}
説明:IFXXXと協力して、条件付き事前コンパイルセグメントのソースコードセグメントの終了位置を指定します。
二。例:
コードセグメントなしでコンパイルするさまざまなコンピレーション記号を事前に定義する例を記述します。
1。新しいDelphiプロジェクトを作成し、Unit1ユニットの形式にボタンボタンを追加します。
2。プログラムは次のように記述されています。
|
3。コンパイル後、実行、押すとボタンを押すと、フォームタイトルバーに「AAA」が表示されます。プログラムはステートメントa:= 'aaa'をコンパイルします。
4。定義された行のブロックを変更します:
に変更したとき
|
再びコンパイルして実行すると、フォームタイトルバーに「BBB」が表示されていることがわかります。プログラムはステートメントa:= 'bbb'をコンパイルします。
未定義の行または変更時
{$ defineNothing} |
別の名前を持っている場合は、コンパイルして再度実行すると、フォームタイトルバーに「その他」が表示されていることがわかります。プログラムはコンパイルされています
|
三つ。バージョンを迅速に作成および変更する方法:
プリコンパイルされた命令を使用して、同じプログラムの複数のバージョンを作成する場合、各バージョンの異なるユニットを見つけ、統合バージョンシンボル(シンボル)を順番に定義し、条件付きプリコンパイル命令をプログラムブロックに追加する必要がありますプログラムパーツは、実際のコンピレーションでコンパイルできます。これは、プログラムの標準化(統一バージョンシンボルの定義)と機密性(異なるバージョンで異なるプログラムパーツを構成する)に良い影響を与える可能性があります。
ただし、このタイプの事前透過命令は現在のユニットでのみ機能するため、バージョンのシンボルを1回定義できないが、バージョンを交換する場合は統合バージョンシンボルを定義する必要があることです、各バージョンの正確さを確実にすることができるように、すべてのバージョンシンボルが変更されていることを確認する必要があります。バージョンシンボルを定義するすべてのファイルを見つけ、すべての位置が修正されていることを確認します。
一般的には次のように見えます:
|
また有用:
|
この編集命令はI/Oチェックです。
より具体的な情報については、関連情報を参照してください。
|
エラーは、コードを正しくコンパイルできないことを示しています。コードを入力するだけでコードDelphiをコンパイルして渡すことができる場合、それは素晴らしいことです。