Delphi : les définitions conditionnelles

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 227 fois - Téléchargée 35 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

Ajouter un commentaire Commentaires
Messages postés
3792
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
9
C'est bizarre, j'ai ajouté ce Inc à mon composant, mais quand je veux tester (je suis sous Delphi 6), avec {$IFDEF D7_OR_HIGHER} il me compile quand même ...

Cordialement, Bacterius !
Messages postés
833
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
3 novembre 2005
1
Je sais qu'on peut par exemple utiliser ce code pour par exemple, les unités utilisées pour la création de composants... DesignIntf et Dsgnintf, je crois... Mais pourrais-tu donner d'autres exemples d'utilisation de ces conditions ? Dans quels cas sera-t-il vraiment nécessaire de faire une distinction entre différentes versions de Delphi ?
Merci !
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Merci, je corrige.
Messages postés
455
Date d'inscription
mardi 24 juillet 2001
Statut
Modérateur
Dernière intervention
10 mars 2009

Delphi7 c'est VER150

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.