CheckBox [Résolu]

Signaler
Messages postés
59
Date d'inscription
mercredi 30 mars 2005
Statut
Membre
Dernière intervention
3 juin 2005
-
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
-
J'ai fait un petit programme pour tester les CheckBox. J'ai juste un bouton et deux checkbox (j'ai laissé les noms d'origines c'est juste un test) sur ma form.
J'ai tapé le code suivant:

procedure TForm1.Button1Click(Sender: TObject);
begin
if checkbox1.Checked=true and checkbox2.checked=true then
begin
showmessage('1=1 et 2=1')
end
else if checkbox1.Checked=true and checkbox2.checked=false then
begin
showmessage('1=1 et 2=0')
end
else if checkbox1.checked=False and checkbox2.checked=true then
begin
showmessage('1=0 et 2=1')
end
else
begin
showmessage('1=0 et 2=0')
end;
end;
end.
Ce code ne fonctionne pas, je ne vois pas pourquoi
Quand on coche juste la checkbox2 on devrait avoir le message '1=0 et 2=1' or on a '1=1 et 2=0'. Si aucune case n'est cochée on a le message '1=1 et 2=1'. Je ne comprend pas

6 réponses

Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
6
Hello,



Tiens essayes comme ceci ca marche beaucoup mieux :

procedure TForm1.Button1Click(Sender: TObject);

begin

if checkbox1.Checked and checkbox2.checked then

begin

showmessage('1=1 et 2=1')

end

else if checkbox1.Checked and not(checkbox2.checked) then

begin

showmessage('1=1 et 2=0')

end

else if not(checkbox1.checked) and checkbox2.checked then

begin

showmessage('1=0 et 2=1')

end

else

begin

showmessage('1=0 et 2=0')

end;

end;


Ou sinon comme cela :

procedure TForm1.Button1Click(Sender: TObject);

begin

if (checkbox1.Checked=true) and (checkbox2.checked=true) then

begin

showmessage('1=1 et 2=1')

end

else if (checkbox1.Checked=true) and (checkbox2.checked=false) then

begin

showmessage('1=1 et 2=0')

end

else if (checkbox1.checked=False) and (checkbox2.checked=true) then

begin

showmessage('1=0 et 2=1')

end

else

begin

showmessage('1=0 et 2=0')

end;

end;


Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
2
Et comme ça :

procedure TForm1.Button1Click(Sender: TObject);
const
VALEUR : array[boolean] of string = ( '0', '1' ) ;
// VALEUR : array[boolean] of string = ( 'FALSE', 'TRUE' ) ; au choix
begin
showmessage( '1=' + VALEUR[checkbox1.Checked] + ' et 2=' + VALEUR[checkbox2.Checked] ) ;
end;

Cordialement.
Messages postés
59
Date d'inscription
mercredi 30 mars 2005
Statut
Membre
Dernière intervention
3 juin 2005

Merci!!!!

Une matinée que je galère a cause de parenthèses, j'hallucine
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
6
Re,



Bravo pour le array[Boolean] os String White Hippo j'aime beaucoup.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Messages postés
323
Date d'inscription
jeudi 6 juin 2002
Statut
Membre
Dernière intervention
24 septembre 2008
2
Salut,

On peut aussi transtyper le boolean en integer puis le convertir en string

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
ShowMessage( '1=' + IntToStr(integer(checkbox1.Checked)) + ' et 2=' + IntToStr(integer(checkbox2.Checked))) ;
end;

Bonne Prog,

Olivier

PS : Lorsqu'une réponse vous convient, n'oubliez pas de la valider.
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
6
Oui il y a pas mal de solution celle la aussi :



ShowMessage(Format('1=%d et 2=%d',[Integer(CheckBox1.Cheked),Integer(CheckBox2.Cheked)]));


Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.