DELPHIにはコンパイラバージョンが#DEFINEで定義されています。
各VersionのDelphi/C++Builderに対するコンパイラバージョン定義は下記の通り
    
        
            | Delphiバージョン | 
            定義 | 
        
        
            | Delphi1 | 
            VER80 | 
        
        
            | Delphi2 | 
            VER90 | 
        
        
            | Delphi3 | 
            VER100 | 
        
        
            | Delphi4 | 
            VER120 | 
        
        
            | Delphi5 | 
            VER130 | 
        
        
            | Delphi6 | 
            VER140 | 
        
        
            | Kylix | 
            VER140 | 
        
        
            | Delphi7 | 
            VER150 | 
        
        
            | Delphi8 | 
            VER160 | 
        
        
            | Delphi2005 | 
            VER170 | 
        
        
            | BDS2006 | 
            VER180 | 
        
        
            | TurboDelphi | 
            VER180 | 
        
        
            | Delphi2007 | 
            VER185(VER180) | 
        
        
            | Delphi2009 | 
            VER200 | 
        
        
            | Delphi2010 | 
            VER210 | 
        
        
            | Delphi XE | 
            VER220 | 
        
    
    
        
            | C++Builderバージョン | 
            定義 | 
        
        
            | C++Builder1 | 
            VER93 | 
        
        
            | C++Builder3 | 
            VER110 | 
        
        
            | C++Builder4 | 
            VER125 | 
        
        
            | C++Builder5 | 
            VER130 | 
        
        
            | C++Builder6 | 
            VER140 | 
        
        
            | BDS2006 | 
            VER180 | 
        
        
            | TurboC++ | 
            VER180 | 
        
        
            | C++Builder2007 | 
            VER185(VER180) | 
        
        
            | C++Builder2009 | 
            VER200 | 
        
        
            | C++Builder2010 | 
            VER210 | 
        
        
            | C++BuilderXE | 
            VER220 | 
        
    
だから、例えばソース中に
{$IFDEF VER170}
  ShowMessage('Delphi2005です');
{$ENDIF}
と書くことによって、Delphi2005のみメッセージが表示されるようにソースが書けます。
Delphi2007だけは、2006とコンパイラの言語仕様に変更がないためVER180もVER185も定義されています。
Delphiのコンパイラバージョンを調べるプログラムを書いておきます。
program DelphiCompilerVerChk;
uses
  SysUtils, Windows;
{$R *.res}
{-------------------------------
//      文字列を追加する関数
機能:       StringAdd(S, 'メッセージ')
            とすると、改行で区切られてSにメッセージが追加される
            StringAdd(S, 'メッセージ' '/')
            とすると、『/』で区切られてメッセージが追加される
備考:       
履歴:       2009/08/28(金)
              作成
//--▼----------------------▽--}
procedure StringAdd(var OriginalText: String; 
  Const AddText: String; Const Separator: String = #13#10);
var
  i: Integer;
  LenOriginal, LenSeparator, LenAdd: Integer;
begin
  if OriginalText = '' then
  begin
    OriginalText := AddText;
  end else
  begin
    LenOriginal := Length(OriginalText);
    LenSeparator:= Length(Separator);
    LenAdd      := Length(AddText);
    SetLength(OriginalText, LenOriginal + LenSeparator + LenAdd);
    for i := 1 to LenSeparator do
    begin
      OriginalText[LenOriginal + i] := Separator[i];
    end;
    for i := 1 to LenAdd do
    begin
      OriginalText[LenOriginal + LenSeparator + i] := AddText[i];
    end;
  end;
end;
//--△----------------------▲--
var
  MsgStr: String;
begin
  MsgStr := 'Version不明';
{$IFDEF VER80}  MsgStr := 'Delphi1';                    {$ENDIF}
{$IFDEF VER90}  MsgStr := 'Delphi2';                    {$ENDIF}
{$IFDEF VER93}  MsgStr := 'C++Builder1';                {$ENDIF}
{$IFDEF VER100} MsgStr := 'Delphi3';                    {$ENDIF}
{$IFDEF VER110} MsgStr := 'C++Builder3';                {$ENDIF}
{$IFDEF VER120} MsgStr := 'Delphi4';                    {$ENDIF}
{$IFDEF VER125} MsgStr := 'C++Builder4';                {$ENDIF}
{$IFDEF VER130} MsgStr := 'Delphi5';                    {$ENDIF}
{$IFDEF VER130} StringAdd(MsgStr, 'C++Builder5');       {$ENDIF}
{$IFDEF VER140} MsgStr := 'Delphi6';                    {$ENDIF}
{$IFDEF VER140} StringAdd(MsgStr, 'C++Builder6');       {$ENDIF}
{$IFDEF VER140} StringAdd(MsgStr, 'Kylix/2/3');         {$ENDIF}
{$IFDEF VER150} MsgStr := 'Delphi7';                    {$ENDIF}
{$IFDEF VER160} MsgStr := 'Delphi8';                    {$ENDIF}
{$IFDEF VER170} MsgStr := 'Delphi2005';                 {$ENDIF}
{$IFDEF VER180} MsgStr := 'BDS 2006(Delphi/C++)';       {$ENDIF}
{$IFDEF VER180} StringAdd(MsgStr, 'Turbo Delphi/C++');  {$ENDIF}
{$IFDEF VER185} MsgStr := 'Delphi2007';                 {$ENDIF}
{$IFDEF VER185} StringAdd(MsgStr, 'C++Builder2007');    {$ENDIF}
{$IFDEF VER200} MsgStr := 'Delphi2009';                 {$ENDIF}
{$IFDEF VER200} StringAdd(MsgStr, 'C++Builder2009');    {$ENDIF}
{$IFDEF VER210} MsgStr := 'Delphi2010';                 {$ENDIF}
{$IFDEF VER210} StringAdd(MsgStr, 'C++Builder2010');    {$ENDIF}
{$IFDEF VER220} MsgStr := 'Delphi XE';                  {$ENDIF}
{$IFDEF VER220} StringAdd(MsgStr, 'C++Builder XE');     {$ENDIF}
  Windows.MessageBox(0,
    PChar(MsgStr),
    PChar(ExtractFileName(ParamStr(0))), MB_OK);
end.