Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

IF IMMÉDIAT (OU IMMEDIATE IF > IIF)


Information sur la source

Catégorie :Trucs & Astuces Niveau : Débutant Date de création : 25/02/2003 Date de mise à jour : 25/02/2003 22:18:32 Vu / téléchargé: 2 421 / 114

Note :
Aucune note

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note


Description

Cette astuce permet d'alléger les codes tels que "If machin then lbl.caption := 'abc' else lbl.caption := 'cba';"...

Grâce à une simple fonction, ce code tient en une ligne (sans compter les lignes de la fonction !). Le principe est de renvoyer une valeur d'un type défini si la condition est vraie, et une autre si celle-ci est fausse...

Avec le mot réservé "overload" après la déclaration de la fonction, on peut déclarer plusieurs fonctions du même nom, ayant des types différents pour les paramètres.
J'ai implémenté deux fonctions : une avec des string et l'autre avec des integer. Je ne suis pas allé cherhcé les exemples d'application bien loin, mais le principe est là !!
 

Source

  • L'utilisation est dans le projet et l'implémentation des fonctions IIF dans l'unité uIIF.pas...
L'utilisation est dans le projet et l'implémentation des fonctions IIF dans l'unité uIIF.pas... 

Conclusion

Reste à dire que cette astuce n'est pas de moi, mais que je la trouve assez intéressant pour qu'elle soit placée sur le site !
Je dois cette "découverte" à Olivier Dahan et à Paul Toth, rédacteurs du livre "Delphi 7 Studio" !

Merci à eux deux, et bonne prog' à tout le monde !
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de Bestiol le 25/02/2003 22:26:12

Désolé mais pour l'instant, le ZIP n'a pas l'air de vouloir passer...
Il ne fait pourtant que 4 Ko !

signaler à un administrateur
Commentaire de Delphiprog le 25/02/2003 22:30:10 administrateur CS

Pour les implémentations avec des integer, voir également la fonction IfThen déclarée dans l'unité math, livrée avec Delphi (extrait de l'aide en ligne) :

function IfThen(AValue: Boolean; const ATrue: Integer; const AFalse: Integer = 0): Integer; overload;

function IfThen(AValue: Boolean; const ATrue: Int64; const AFalse: Int64 = 0): Int64; overload;
function IfThen(AValue: Boolean; const ATrue: Double; const AFalse: Double = 0.0): Double; overload;

Description

IfThen teste l'expression passée en tant que AValue, et renvoie ATrue si elle est évaluée comme True ou AFalse si elle est évaluée comme False. Si le paramètre AFalse est omis, IfThen renvoie 0 ou une chaîne vide lorsque AValue est évaluée comme False.

Pour les chaînes, voir la même fonction déclarée dans StrUtils :
function IfThen(AValue: Boolean; const ATrue: string;
  AFalse: string = ''): string;

Ca ne fait pas un peu double emploi ?

signaler à un administrateur
Commentaire de bgK le 26/02/2003 09:31:09

Une autre méthode pour écrire le code répétitif plus rapidement :
CTRL + J dans l'edi, puis le code (ifeb pour une structure if/else)

Sinon, ça fait un bon tutoriel sur la surcharge des fonctions.

signaler à un administrateur
Commentaire de Bestiol le 26/02/2003 13:57:31

Ah !! Désolé, je ne savais pas que ces fonctions étaient implémentées dans des unités de Delphi !! Et ils ne le disaient pas non plus dans le bouquin !
Bon, bah mon source sert à rien, alors ;o(

Bonne prog' quand même !

signaler à un administrateur
Commentaire de Delphiprog le 27/02/2003 00:19:18 administrateur CS

Un code source n'est jamais inutile s'il est une oeuvre de l'esprit et s'il démontre que l'on peut faire autrement, voire mieux...même pour arriver au même résultat.
Comme le dit bgk : "Sinon, ça fait un bon tutoriel sur la surcharge des fonctions" . C'est déjà çà !
Dans l'ensemble, je crois que nous ne prenons pas assez de temps de regarder ce que Borland nous a livré avec ses produits. Combien d'heures passées à se demander comment faire, alors que nous avions la réponse à portée de souris (ne pas confondre avec une couvée de souris ! ;-)).

signaler à un administrateur
Commentaire de Bestiol le 27/02/2003 00:40:42

lol !
Merci de me "remonter le moral", DelphiProg !! Ceci dit, je suis d'accord avec toi, mais je ne pense pas, sur le coup, avoir fait mieux ou autrement... Y a pas 36000 façons d'implémenter cette fonction !
:op

Bonne prog' !!

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.