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 :

Structure conditionnelle avec CheckedBox


Sujet :

Langage Delphi

  1. #1
    Membre régulier Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Points : 123
    Points
    123
    Par défaut Structure conditionnelle avec CheckedBox
    Bonjour les amis, J'ai mis en place cette condition sur un checkbox.
    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
    procedure TFrmAutoPrelevement.CheckBox1Click(Sender: TObject);
    begin
         if CheckdBox1.Checked=True then
            begin
              With DataModule1.IBQueryMTProd do
               begin
                close;
                ParamByName('LIB_PROD').Value := 'ASSURANCE MALADIE';
                Open;
                if not Eof then
                begin
                MontantMaladie.Value:=FieldValues['MT_PROD'];
                end
            else if CheckBox1.Checked=False then
             MontantMaladie.Value:=0;
            end;
            end;
        Calcul.Execute;
    end;
    L'idée est que si je clique sur le checkbox pour mettre sa propriété checked à True, l'information est récupérée dans la base de donnée et s'affiche dans le currencyedit. Et si je clique à nouveau sur le checkebox pour que sa proprieté checked soit à false, la valeur de currencyedit redevient zéro. Dans le premier cas il fonctionne mais pas dans le second cas. Quelque chose manque t-elle dans mon codes ?
    L'important n'est pas de tout savoir mais de savoir où tout se trouve !

  2. #2
    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

    La condition Checked = False (que tu devrais écrire: not Checked) est mal placée, puisque au sein du 1° bloc then.

    @+

  3. #3
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Points : 757
    Points
    757
    Par défaut
    Et oui tu n'indentes pas bien ton code !!!

    tu es un codeur brouillon ! C'est pas propre et ça induit des bugs évidents !!!

    Voici ton code indenté et corrigé:

    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
    procedure TFrmAutoPrelevement.CheckBox1Click(Sender: TObject);
    begin
         if CheckdBox1.Checked=True then
         begin
           With DataModule1.IBQueryMTProd do
           begin
              close;
              ParamByName('LIB_PROD').Value := 'ASSURANCE MALADIE';
              Open;
              if not Eof then
              begin
                MontantMaladie.Value:=FieldValues['MT_PROD'];
              end
           end
         end
         else if CheckBox1.Checked=False then
            MontantMaladie.Value:=0;
     
         Calcul.Execute;
    end;

  4. #4
    Membre régulier Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Points : 123
    Points
    123
    Par défaut
    Excuse-moi Cl@udius je n'ai pas bien compris. où devrais-je placer la condition not checked ?
    L'important n'est pas de tout savoir mais de savoir où tout se trouve !

  5. #5
    Membre régulier Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Points : 123
    Points
    123
    Par défaut
    Désolé les amis, j'ai maintenant compris
    Vous êtes trop cool
    Longue vie à Developpez.com
    L'important n'est pas de tout savoir mais de savoir où tout se trouve !

  6. #6
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Points : 757
    Points
    757
    Par défaut
    Citation Envoyé par the watcher Voir le message
    Excuse-moi Cl@udius je n'ai pas bien compris. où devrais-je placer la condition not checked ?
    Il veut dire que tu peux écrire différemment tes tests, par exemple comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if checkBox1.checked then
      ...
    else
      ...
    ça suffit ! pas besoin de mettre "=true" et "=false", mais ça c'est pas bien grave comparé à ton erreur initiale.

  7. #7
    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
    Tout comme Peter, je te conseille de bien indenter ton code, cela évite de commettre de type d'erreur.

    @+

  8. #8
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    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 TFrmAutoPrelevement.CheckBox1Click(Sender: TObject);
    begin
      MontantMaladie.Value := 0;
     
      if CheckdBox1.Checked then
        with DataModule1.IBQueryMTProd do
        begin
          Close;
          ParamByName('LIB_PROD').Value := 'ASSURANCE MALADIE';
          Open;
          if not Eof then
            MontantMaladie.Value := FieldValues['MT_PROD'];
        end
     
      Calcul.Execute;
    end;
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

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

Discussions similaires

  1. Structure while avec une boucle for en test
    Par le_voisin dans le forum C++
    Réponses: 9
    Dernier message: 09/09/2006, 19h16
  2. Commande conditionnelle avec cmd.exe
    Par lastrecrue dans le forum Windows XP
    Réponses: 1
    Dernier message: 31/08/2006, 16h27
  3. [XSLT]la structure conditionnelle.
    Par Extra-Nitro dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 22/08/2006, 13h46
  4. [Language][Compilateur]Objets et structures conditionnelles
    Par goran kajfes dans le forum Langage
    Réponses: 5
    Dernier message: 30/11/2005, 22h55
  5. [débutant][Conception] Structure dynamique avec Java
    Par blaiseac dans le forum Général Java
    Réponses: 5
    Dernier message: 18/11/2004, 23h00

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