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 et else : le code passe à la suite alors que la condition n'est pas remplie


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 62
    Points : 29
    Points
    29
    Par défaut If et else : le code passe à la suite alors que la condition n'est pas remplie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TForm6.BitBtn3Click(Sender: TObject);
    begin
     if (edit1.text='') or (edit2.text='') or (combobox1.text='') or (combobox2.text='') or (combobox3.text='') or (combobox4.text='') or (combobox5.text='') or (combobox6.text='')then
       showmessage('Vous devez remplir tous les champs')
     else
      Form5.table3.Delete;
      Form5.combobox2.Clear;
      with table1 do
       begin...
    J'aimerais savoir si une erreur s'est faufilée dans mon code ci dessus : en effet, j'aimerais que si l'un des edit ou l'un des combobox n'est pas rempli, l'utilisateur se voit afficher le showmessage. C'est ce qui se passe actuellement mais ensuite ça continue gentillement à s'exécuter pour faire le Form5.table3.delete etc ... moi j'aimerais qu'il s'arrete au showmessage.

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 79
    Points : 355
    Points
    355
    Par défaut
    Essaye comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if ((((((((edit1.text='') or (edit2.text='')) or (combobox1.text='')) or (combobox2.text='')) or (combobox3.text='')) or (combobox4.text='')) or (combobox5.text='')) or (combobox6.text=''))then
    showmessage('Vous devez remplir tous les champs')
    else
    Form5.table3.Delete;
    Form5.combobox2.Clear;
    with table1 do

  3. #3
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    bonjour,

    tu peut faire un Exit; après ton ShowMessage, non?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Points : 711
    Points
    711
    Par défaut
    Bonjour,

    Tu n'aurais pas oublié de mettre un bloc begin...end pour ton else ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    @ jfdeterm : non ça continue quand même dans le code

    @ Padawandudelphi : Un exit n'est pas possible car les points virgules ne sont pas tolérés avant un "else" ...

    Y'a un truc qui cloche

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    @ thewho : bien joué c'est tout à fait ça

    Merci à tous ++

  7. #7
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    ????

    Tu peut bien écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(   ) then
             begin
             Showmessage();
             Exit;
             end;
    Non?

  8. #8
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut
    2 possibilités :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm6.BitBtn3Click(Sender: TObject);
    begin
    if (edit1.text='') or (edit2.text='') or (combobox1.text='') or (combobox2.text='') or (combobox3.text='') or (combobox4.text='') or (combobox5.text='') or (combobox6.text='')then
      raise Exception.Create('Vous devez remplir tous les champs')
    else
    Form5.table3.Delete;
    Form5.combobox2.Clear;
    with table1 do
    begin...
    ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure TForm6.BitBtn3Click(Sender: TObject);
    begin
    if (edit1.text='') or (edit2.text='') or (combobox1.text='') or (combobox2.text='') or (combobox3.text='') or (combobox4.text='') or (combobox5.text='') or (combobox6.text='')then
    begin
      showmessage('Vous devez remplir tous les champs');
      exit;
    end
    else
    Form5.table3.Delete;
    Form5.combobox2.Clear;
    with table1 do
    begin...
    Bloon

  9. #9
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Un petit conseil: si tu identais ton code tu te serais tout de suite rendu compte de ton erreur.

    TheWho est de mon avis (cf sa signature).

    @+ et bon dev

  10. #10
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Essaie ceci :

    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
    procedure TForm6.BitBtn3Click(Sender: TObject);
    begin
      if (trim(edit1.text)='') or (trim(edit2.text)='') or (trim(combobox1.text)='') or   (trim(combobox2.text)='') or (trim(combobox3.text)='') or   (trim(combobox4.text)='') or (trim(combobox5.text)='') or  (trim(combobox6.text)='')then
      showmessage('Vous devez remplir tous les champs')
      else
      begin
       Form5.table3.Delete;
       Form5.combobox2.Clear;
       with table1 do
       begin
        ...
        ...
        ...
       end; // end de ta boucle with table1 do
     end; // end de ton else
    end; // end de ta procédure
    La fonction Trim permet de supprimer les espaces superflus en début et fin de chaîne. Ainsi, si l'utilisateur ne rentre que des espaces, le champs sera considéré comme vide

    J'espère que ca fonctionnera (j'ai pas testé le code).
    @+

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Points : 711
    Points
    711
    Par défaut
    Bonjour,
    Citation Envoyé par Claudius40
    Salut

    Un petit conseil: si tu identais ton code tu te serais tout de suite rendu compte de ton erreur.

    TheWho est de mon avis (cf sa signature).

    @+ et bon dev
    Farpaitement !!

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

Discussions similaires

  1. "code 301 moved permanently" alors que non
    Par jejeman dans le forum Apache
    Réponses: 2
    Dernier message: 13/02/2015, 15h40
  2. Gideros, le moteur de jeux Lua est abandonné : son code passe open source
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 02/09/2014, 20h38
  3. Executer du code passé en paramètre
    Par stockes dans le forum MATLAB
    Réponses: 5
    Dernier message: 19/10/2013, 10h22
  4. JUnit - Exécuter du code avant la suite de tests
    Par nicolas_isi dans le forum Tests et Performance
    Réponses: 2
    Dernier message: 06/04/2011, 17h03
  5. Comment ajouter du code a la suite ?
    Par maximenet dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 03/02/2006, 11h52

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