IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Appel de fonction


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    246
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 246
    Points : 67
    Points
    67
    Par défaut Appel de fonction
    Bonjour,
    J'essaie de comprendre le code d'un programme récupéré sur le Net.
    Je butte sur l'utilisation ou l'appel de fonction.
    J'ai une fonction déclarée dans un Type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Function Add(Name:String;Value:TypeExpression):Integer;
    Et voici l'appel de la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if i=-1 Then Add(Name,Value)
    Il faut normalement attribuer le résultat de la fonction à une variable non?
    Sinon que fait cet appel?
    Si quelqu'un pouvait m'aiguiller je lui en serais drôlement reconnaissant.
    BB

  2. #2
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 370
    Points : 3 144
    Points
    3 144
    Par défaut
    Bonjour,

    il n'est pas obligatoire d'affecter le résultat d'une fonction à une variable. Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ShowMessage('Date et heure du jour : '+DateTimeToStr(Now));
    Dans ton cas le code de la fonction est simplement exécuté si la condition est vraie.

    A voir ce qu'il y a dans la fonction ...

    A+
    Charly

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 648
    Points : 10 618
    Points
    10 618
    Par défaut
    Citation Envoyé par BBouille Voir le message
    Il faut normalement attribuer le résultat de la fonction à une variable non?
    Sinon que fait cet appel?
    Si tu prends un langage comme le langage C, souvent les retours sont
    1. des booléens (en C ce sont des entiers) pour la programmation défensive. true (valeur autre que 0) veut dire qu'il n'y a pas de problèmes.
    2. des pointeurs, qui est la destination (l'endroit de la mémoire qu'on vient de créer/ sur lequel on vient de travailler). Cela permet de chaîner les appels (call1(..., call2(..., call3(...), ...), ...))

    Tous ces retours peuvent être ignorés (mais pour la programmation défensive, à tes dépens ), et surtout se référer à la documentation officielle d'une procédure/ fonction/ méthode (et à défaut, le code source s'il est disponible)

  4. #4
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 459
    Points : 3 090
    Points
    3 090
    Par défaut
    Je pense plutôt à un with au-dessus de ce code.

    à mieux y regarder, il semble que non. Donc, j'ai dis une connerie

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    246
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 246
    Points : 67
    Points
    67
    Par défaut
    Bonjour et merci pour vos réponses.
    Ah bon ben c'est clair mais ça me semble un peu bizarre par rapport à la "rigueur" de la syntaxe du Pascal ou Delphi.
    Mais en effet la fonction effectue d'autres choses.
    Merci à vous.
    BB

  6. #6
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    Citation Envoyé par BBouille Voir le message
    Bonjour et merci pour vos réponses.
    Ah bon ben c'est clair mais ça me semble un peu bizarre par rapport à la "rigueur" de la syntaxe du Pascal ou Delphi.
    Mais en effet la fonction effectue d'autres choses.
    Merci à vous.
    BB
    c'est simplement que parfois on a besoin du résultat, parfois non

    par exemple StringList.Add('xxx') ajoute la chaîne à la liste et retourne l'index de celle-ci dans la liste...parfois on exploite cette valeur, mais souvent on s'en fiche, ce serait donc très contraignant de devoir systématiquement déclarer une variable temporaire inexploitée pour y stocker cet indice...ceci dit, il me semble que dans les premières versions de Turbo Pascal il fallait en effet le faire

  7. #7
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 430
    Points : 1 126
    Points
    1 126
    Par défaut
    Bonjour,

    Citation Envoyé par Paul TOTH Voir le message
    ceci dit, il me semble que dans les premières versions de Turbo Pascal il fallait en effet le faire
    Lorsque je travaillais avec les premiers pascals (UCSD et MS Pascal) il y avait une procédure Eval pour oublier le résultat de la fonctionpermettait d'ignorer le valeur de retour.

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appeler une fonction avec "action" ds un
    Par drinkmilk dans le forum ASP
    Réponses: 4
    Dernier message: 20/04/2004, 14h54
  2. Réponses: 4
    Dernier message: 19/04/2004, 13h41
  3. [JSP] Appeler une fonction
    Par Patrick95 dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 23/12/2003, 13h44
  4. Appel à des fonctions incluses dans des DLL
    Par Greybird dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2003, 13h33
  5. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 18h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo