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

Delphi Discussion :

[function][delphi]problème valeur de retour


Sujet :

Delphi

  1. #1
    Membre régulier Avatar de daheda
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 81
    Points : 109
    Points
    109
    Par défaut [function][delphi]problème valeur de retour
    bien bonjour!
    encore là je me heurte à un caillout.
    j'ai defini la fonction suivate:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    function verif_sortie():boolean;
    var b:boolean;
    begin
      b:=false;
      with form6 do
        begin
          ibquery4.SQL.Clear;
          ibquery4.SQL.Add('select reference_sortie from fiche_de_sortie inner join materiels');
          ibquery4.SQL.Add('on fiche_de_sortie.num_serie_mat=materiels.num_serie_mat inner join');
          ibquery4.SQL.Add('fiche_d__entree on materiels.num_serie_mat=fiche_d__entree.num_serie_mat');
          ibquery4.SQL.add('where num_entree=:s');
          ibquery4.ParamByName('s').asinteger:=strtoint(form6.Edit4.Text)+1;
          ibquery4.Open;
            if ibquery4.FieldValues['reference_sortie']<>null then
              begin
                MessageDlg('Ce materiels est déjà sortie !',mtInformation,[mbok],0);
                b:=true;
              end
            else
            begin
            b:=false;
            exit;
            end;
          ibquery4.Close;
        end;
        verif_sortie:=b;
    end;
    le problème c'est que delphi me montre ça, au moment de la compilation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [Avertissement] Test.pas(566): La valeur de retour de la fonction 'verif_sortie' peut être indéfinie
    et que quand j'utilise la fonction elle retourne toujours la valeur "False"
    mercie d'avance de votre aide et conseil
    cordialement

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 904
    Points : 6 027
    Points
    6 027
    Par défaut
    Si tu passes par le else de ton if, tu sors (exit) mais la valeur de retour de la fonction n'a pas été affecté.

    En y regardant de plus près, cette partie else ne sert à rien en l'état...
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  3. #3
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Je me suis permis de modifier ton code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    function verif_sortie(Valeur : Integer):boolean;
    begin
      b:=false;
      with form6.IbQuery4 do
      begin
        try
          SQL.Clear;
          SQL.Add('select reference_sortie from fiche_de_sortie inner join materiels');
          SQL.Add('on fiche_de_sortie.num_serie_mat=materiels.num_serie_mat inner join');
          SQL.Add('fiche_d__entree on materiels.num_serie_mat=fiche_d__entree.num_serie_mat');
          SQL.add('where num_entree=:s');
          ParamByName('s').asinteger:=Valeur;
          Open;
          if Not FieldByName('reference_sortie).IsNull then
          begin
             Result:=true;
             MessageDlg('Ce materiels est déjà sortie !',mtInformation,[mbok],0);
          end
          else
          begin
            Result:=false;
          end;
        finally
          Close;
        end
       end;
    end;
    Utilise comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If verif_sortie(strtoint(form6.Edit4.Text)+1) then ...
    Voilà
    On progresse .....

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

Discussions similaires

  1. caml problème valeur de retour
    Par ktayeb94 dans le forum Caml
    Réponses: 1
    Dernier message: 24/12/2014, 13h22
  2. [SQL-Server] Problème valeurs de retour (0 au lieu de NULL)
    Par snaypse dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/06/2010, 19h31
  3. Réponses: 9
    Dernier message: 26/07/2007, 16h35
  4. [AJAX] Récupération d'une valeur en retour d'un php
    Par lodan dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 08/02/2007, 21h18
  5. Problème de valeur de retour de MessageDlg
    Par Pill_S dans le forum Composants VCL
    Réponses: 9
    Dernier message: 20/08/2005, 15h44

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