18

Delphi 2010では、これを実行したい場合:

{$IFDEF VER999}
//some delphi 2010-specific code here
{$ENDIF}

「999」の代わりにどのバージョン番号を使用する必要がありますか?

4

5 に答える 5

58

コンパイラのバージョンのリストは次のとおりです。

{$IFDEF VER40}  - Turbo pascal 4
{$IFDEF VER50}  - Turbo pascal 5
{$IFDEF VER55}  - Turbo pascal 5.5
{$IFDEF VER60}  - Turbo pascal 6
{$IFDEF VER70}  - Borland pascal 7 (And turbo pascal 1.5 for windows)
{$IFDEF VER80}  - Delphi 1
{$IFDEF VER90}  - Delphi 2
{$IFDEF VER100} - Delphi 3
{$IFDEF VER120} - Delphi 4
{$IFDEF VER130} - Delphi 5
{$IFDEF VER140} - Delphi 6
{$IFDEF VER150} - Delphi 7
{$IFDEF VER160} - Delphi 8
{$IFDEF VER170} - Delphi 2005
{$IFDEF VER180} - Delphi 2006
{$IFDEF VER180} - Delphi 2007
{$IFDEF VER185} - Delphi 2007
{$IFDEF VER200} - Delphi 2009
{$IFDEF VER210} - Delphi 2010
{$IFDEF VER220} - Delphi XE
{$IFDEF VER230} - Delphi XE2
{$IFDEF VER240} - Delphi XE3
{$IFDEF VER250} - Delphi XE4
{$IFDEF VER260} - Delphi XE5
{$IFDEF VER265} - Appmethod 1.0
{$IFDEF VER270} - Delphi XE6
{$IFDEF VER280} - Delphi XE7
{$IFDEF VER290} - Delphi XE8
{$IFDEF VER300} - Delphi 10 Seattle
{$IFDEF VER310} - Delphi 10.1 Berlin
{$IFDEF VER320} - Delphi 10.2 Tokyo

Delphi 2007 では、VER180VER185両方が定義されています。これは、Delphi 2006 との下位互換性と、D2007 を明確に検出できるようにするためのものでした。

2006 年から 2007 年の間になぜそうしたのかはわかりませんが、他のリリースではそうではありません。私には一貫性がないように思えます (しかし、そうではありません。以下の Barry Kelly のコメントを参照してください)。

于 2009-09-03T12:57:01.273 に答える
32

Delphi 6以降を使用している場合は、次を使用できますCompilerVersion

{$IF CompilerVersion >= 18.5}
//some code only compiled for Delphi 2007 and later
{$IFEND}
Delphi10.2東京-32
Delphi10.1ベルリン-31
Delphi10シアトル-30
DelphiXE8-29
DelphiXE7-28
DelphiXE6-27
Appmethod 1.0-26.5
DelphiXE5-26
DelphiXE4-25
DelphiXE3-24
DelphiXE2-23
Delphi XE-22
Delphi 2010-21
Delphi 2009-20
Delphi2007-18.5
Delphi 2006-18
Delphi 2005-17
Delphi8-16
Delphi 7-15
Delphi 6-14
于 2009-10-15T12:50:16.277 に答える
17

{$IFDEF VER210}

于 2009-09-03T03:18:25.200 に答える
8

これは、条件定義を含むwiki ページです。

于 2009-10-15T13:24:02.833 に答える
1

Jason のコメントと同じように、現在および古いバージョンの Delphi で実行する必要があるコードを作成している場合は、次のようなことを行うことができます。

{$IF CompilerVersion > 18.5} 
   //Delphi 2009 or higher
   //Unicode version of code
{$ELSE}
   //Delphi 2007 and earlier
   //NON-Unicode version of code
{$IFEND}
于 2011-01-25T21:19:44.227 に答える