Commentçamarche.net
CodeS-SourceS
Rechercher un code, un tuto, une réponse

Delphi : les définitions conditionnelles

0/5 (4 avis)

Snippet vu 7 134 fois - Téléchargée 23 fois

Contenu du snippet

Comme il est difficile de se souvenir des définitions conditionnelles indiquant une version de Delphi, et selon les version, compiler telle ou telle partie de code à partir de telle version, voici quelque chose qui devrait vous intéresser.
Si vous voulez compiler telle partie à partir de Delphi 6, par exemple, vous pourrez utiliser {$IfDef D6_OR_HIGHER} dans votre code.

Source / Exemple :


Delphi conditionnals defines}
{$IFNDEF VER80} { If not Delphi 1 }
  {$DEFINE D2_OR_HIGHER}
    {$IFNDEF VER90} { If not Delphi 2 }
      {$DEFINE BCB1_OR_HIGHER}
      {$IFNDEF VER93} { If not BCB 1 }
        {$DEFINE D3_OR_HIGHER}
        {$IFNDEF VER100} { If not Delphi 3 }
          {$DEFINE BCB3_OR_HIGHER}
          {$IFNDEF VER110} { If not BCB 3 }
            {$DEFINE D4_OR_HIGHER}
            {$IfNDef VER120}
              {$Define D5_OR_HIGHER}
              {$IfNDef VER130}
                {$Define D6_OR_Higher}
                {$IfNDef VER140}
                  {$Define D7_OR_HIGHER}
                  {$IfDef VER150}
                    {$define D8_OR_HIGHER}
                    {$IfDef VER160}
                      {$Define D2005_OR_HIGHER}
                      {$IfDef VER170}
                        {$Define D2006_OR_HIGHER}
                        {$IfDef VER180}
                          {$Define D2007_OR_HIGHER}
                          {$IfDef VER185}
                            {$Define D2007_OR_HIGHER}
                          {$EndIf}
                        {$EndIf}
                      {$EndIf}
                    {$EndIf}
                  {$EndIf}
                {$EndIf}
            {$EndIf}
          {$EndIf}
        {$ENDIF}
      {$ENDIF}
    {$ENDIF}
  {$ENDIF}
{$ENDIF}

Conclusion :

      • Comment utiliser ces lignes :

Pour ma part, j'ai enregistré ces lignes dans un fichier VersionsDef.inc.
Lorsque j'en ai besoin, je l'inclus dans mon code source juste après le nom de l'unité :
Unit MachinChose;
{$I VersionsDef.inc}

Vous pouvez aussi préciser le chemin d'accès dans la directive $I, par exemple :
{$I c:\Delphi\VersionsDef.inc}

Ensuite dans le code, vous utilisez les définitions conditionnelles, tranquillement.
      • Exemples d'utilisation :

Exemple 1 : compiler cette partie de code avec toute version de Delphi supérieure à Delphi 4:
{$IfDef D5_OR_HIGHER}
...
{$EndIf}

Exemple 2 : compiler ce code uniquement si la version de Delphi est inférieure ou égale à 4:
{$IfDef D4_OR_HIGHER}
{$IfNDef D5_OR_HIGHER}
....
{$EndIf}
{$EndIf}
Exemple 3 : compiler ce code uniquement si la version de Delphi est inférieure à 7 :
{$IfNDef D7_OR_HIGHER}
...
{$EndIf}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.