elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 23 juil. 2006 à 10:29
Tout betement :
Et = And
Ou = Or
Ou exclusif = Xor
Non = Not
Table du "And" si çà peut t'aider à comprendre :
S = A et B
A B S
0 0 0
0 1 0
1 0 0
1 1 1
C'est comme si A était du chocolat et B de la confiture. Si je te dit Chocolat ET confiture, çà ne sera vrai que si tu prend les deux !
Si tu ne prend que du chocolat ou que de la confiture, c'est un OU pas un ET :-)
En faite la logique c'est tout con et tu l'utilise tout les jours sans meme faire de developpement, juste en causant.
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 23 juil. 2006 à 11:24
Salut,
eh oui on l'utilise tous les jours ...
Mais j'ajouterai ceci :
pour les déclarations des constantes il est préférable, à mon avis, d'utiliser le format Hex :
Const OPTION1 = $00000001; <--- 4 possibilités par colone 1, 2, 4 où 8
OPTION2 = $00000002; c'est ce que tu as fais au début (mais en Hex ça fonctionne pour tous) OPTION3 = $00000004;
OPTION4 = $00000008; <---
OPTION5 = $00000010;
OPTION6 = $00000020;
OPTION7 = $00000040;
OPTION8 = $00000080;
OPTION9 = $00000100;OPTION10 $00008000; <--- ici on aurai pu continuer avec 200, 400, 800 mais pour coller aux nombres que OPTION11 $00010000; tu donnes j'ai adapté ($8000 = 32768 et $10000 = 65536)
et le petit exemple qui va bien :
procedure TForm1.Button9Click(Sender: TObject);
Var VTest : Integer;
begin VTest : = 65574;
If (VTest and OPTION1) <> 0 Then Label1.Caption := 'OPTION1 Active';
If (VTest and OPTION2) <> 0 Then Label2.Caption : = 'OPTION2 Active';
If (VTest and OPTION3) <> 0 Then Label3.Caption := 'OPTION3 Active';
If (VTest and OPTION4) <> 0 Then Label4.Caption : = 'OPTION4 Active';
If (VTest and OPTION5) <> 0 Then Label5.Caption := 'OPTION5 Active';
If (VTest and OPTION6) <> 0 Then Label6.Caption : = 'OPTION6 Active';
If (VTest and OPTION7) <> 0 Then Label7.Caption := 'OPTION7 Active';
If (VTest and OPTION8) <> 0 Then Label8.Caption : = 'OPTION8 Active';
If (VTest and OPTION9) <> 0 Then Label9.Caption := 'OPTION9 Active';
If (VTest and OPTION10) <> 0 Then Label10.Caption : = 'OPTION10 Active';
If (VTest and OPTION11) <> 0 Then Label11.Caption := 'OPTION11 Active';
end;