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 :

IF imbriqués : Problème de syntaxe


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 160
    Par défaut IF imbriqués : Problème de syntaxe
    Bonjour à tous,

    J'ai une petite application delphi concernant des livraisons de fuel je vous passe des détails. J'ai un souci avec les structures de IF imbriqués avec des ELSE et surtout les END;

    Je vous mets le code je voudrai que vous me disiez ce qui ne va pas dans la structure de mon IF. En ce qui concerne les lignes de codes, tout ca c'est OK je voudrai juste de l'aide sur le pourquoi mon IF fonctionne pas

    Merci d'avance pour votre soutien. Cordialement, Guillaume.

    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
    29
    30
    31
    32
    33
    34
    35
     if edtQuantiteLivree.Text='' then
        begin
          showmessage('ERREUR! Aucune quantité livrée');
          edtQuantitelivree.SetFocus;
        end
        else
          if edtQuantiteRestante.Text='' then
            begin
              showmessage('ERREUR! Aucune quantité restante');
              edtQuantiteRestante.SetFocus;
            end
            else
              if somme<(strtoint(edtCapaciteCuve.Text)) then
                begin
                  Tliv.qtLiv:=strtoint(edtQuantiteLivree.Text);
                  Tliv.qtRest:=strtoint(edtQuantiteRestante.Text);
                  dm.enregistrementLivraison(TLiv);
                  tmMessage.Enabled:=true;
                  lblMessage.Visible:=true;
                  edtCode.Text:='';
                  edtNom.Text:='';
                  edtAdresse.Text:='';
                  edtCodePostal.Text:='';
                  edtCapaciteCuve.Text:='';
                  edtSurfaceDomicile.Text:='';
                  edtNumeroLivraison.Text:='';
                  edtQuantiteLivree.Text:='';
                  edtQuantiteRestante.Text:='';
                end
                else
                  begin
                    showmessage('ERREUR! La capacité de la cuve ne permet pas de contenir la quantité livrée et la quantité restante.');
                    edtQuantiteLivree.SetFocus;
                  end
              end;

  2. #2
    Membre éclairé
    Homme Profil pro
    Responsable d'une MOE bancaire
    Inscrit en
    Juillet 2003
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable d'une MOE bancaire

    Informations forums :
    Inscription : Juillet 2003
    Messages : 261
    Par défaut
    j'ai remarqué que t'as une 'end' de plus. Essaye ce code, je crois que c'est plus lisible :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    if edtQuantiteLivree.Text='' then
        begin
          showmessage('ERREUR! Aucune quantité livrée');
          edtQuantitelivree.SetFocus;
        end
      else
        begin
          if edtQuantiteRestante.Text='' then
            begin
              showmessage('ERREUR! Aucune quantité restante');
              edtQuantiteRestante.SetFocus;
            end
          else
            begin
              if somme<(strtoint(edtCapaciteCuve.Text)) then
                begin
                  Tliv.qtLiv:=strtoint(edtQuantiteLivree.Text);
                  Tliv.qtRest:=strtoint(edtQuantiteRestante.Text);
                  dm.enregistrementLivraison(TLiv);
                  tmMessage.Enabled:=true;
                  lblMessage.Visible:=true;
                  edtCode.Text:='';
                  edtNom.Text:='';
                  edtAdresse.Text:='';
                  edtCodePostal.Text:='';
                  edtCapaciteCuve.Text:='';
                  edtSurfaceDomicile.Text:='';
                  edtNumeroLivraison.Text:='';
                  edtQuantiteLivree.Text:='';
                  edtQuantiteRestante.Text:='';
                end
              else
                begin
                  showmessage('ERREUR! La capacité de la cuve ne permet pas de contenir la quantité livrée et la quantité restante.');
                  edtQuantiteLivree.SetFocus;
                end
            end;
        end;

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 160
    Par défaut
    Merci ta structure est impeccable mais j'ai encore un petit problème.

    Quand je lance l'exécution de l'appli, j'ai un message d'erreur ( que j'ai depuis le début d'ailleurs):

    "le projet .......... a provoqué une classe d'exception EConvertError avec le message ''' n'est pas une valeur entière correcte. Processus stoppé. .... "

    Qu'est ce que ca veut dire ? Comment régler le problème ?

    Cordialement,

    Guillaume.

  4. #4
    Membre Expert

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Par défaut
    Ton problème doit certainement venir de là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    strtoint(edtCapaciteCuve.Text)
    Vérifie que la valeur de edtCapaciteCuve.text est réélement un entier.
    Utilise pour cela le débuggage pas à pas, cela permettra de le vérifier.

Discussions similaires

  1. Problème de syntaxe - elements['x'].value
    Par Equus dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/02/2005, 11h22
  2. [Interbase] Problème de syntaxe SQL
    Par navis84 dans le forum InterBase
    Réponses: 4
    Dernier message: 22/12/2004, 17h07
  3. Problème de syntaxe
    Par Mister_FX dans le forum ASP
    Réponses: 5
    Dernier message: 30/06/2004, 10h01
  4. Problème de syntaxe ADO ...
    Par bendev dans le forum ASP
    Réponses: 2
    Dernier message: 15/04/2004, 14h38
  5. Réponses: 2
    Dernier message: 08/03/2004, 15h10

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