Bonjour
Dans les flags d'un CommonDialog, je n'arrive pas à désactiver le
compteurs du nombre de copies, si quelqu'un sait???
Voici ce que j'ai comme code (il manque un flag (copie = 1) ???
On Error GoTo erreur
Form1.CommonDialog1.Orientation = cdlLandscape ' paysage
Form1.CommonDialog1.Flags = &H80000 + &H8 + &H4
'&H80000 Désactive la case à cocher Imp dans fichier.
'&H8 Désactive le bouton Pages + ctrl associé
'&H4 Désactive le bouton d'option Sélection
Form1.CommonDialog1.CancelError = True ' 32755 = stop
Form1.CommonDialog1.ShowPrinter
Merci.
Bonjour
Dans les flags d'un CommonDialog, je n'arrive pas à désactiver le
compteurs du nombre de copies, si quelqu'un sait???
Voici ce que j'ai comme code (il manque un flag (copie = 1) ???
On Error GoTo erreur
Form1.CommonDialog1.Orientation = cdlLandscape ' paysage
Form1.CommonDialog1.Flags = &H80000 + &H8 + &H4
'&H80000 Désactive la case à cocher Imp dans fichier.
'&H8 Désactive le bouton Pages + ctrl associé
'&H4 Désactive le bouton d'option Sélection
Form1.CommonDialog1.CancelError = True ' 32755 = stop
Form1.CommonDialog1.ShowPrinter
Merci.
Bonjour
Dans les flags d'un CommonDialog, je n'arrive pas à désactiver le
compteurs du nombre de copies, si quelqu'un sait???
Voici ce que j'ai comme code (il manque un flag (copie = 1) ???
On Error GoTo erreur
Form1.CommonDialog1.Orientation = cdlLandscape ' paysage
Form1.CommonDialog1.Flags = &H80000 + &H8 + &H4
'&H80000 Désactive la case à cocher Imp dans fichier.
'&H8 Désactive le bouton Pages + ctrl associé
'&H4 Désactive le bouton d'option Sélection
Form1.CommonDialog1.CancelError = True ' 32755 = stop
Form1.CommonDialog1.ShowPrinter
Merci.
Dans les flags d'un CommonDialog, je n'arrive pas à désactiver le
compteurs du nombre de copies, si quelqu'un sait???
'&H8 Désactive le bouton Pages + ctrl associé
Dans les flags d'un CommonDialog, je n'arrive pas à désactiver le
compteurs du nombre de copies, si quelqu'un sait???
'&H8 Désactive le bouton Pages + ctrl associé
Dans les flags d'un CommonDialog, je n'arrive pas à désactiver le
compteurs du nombre de copies, si quelqu'un sait???
'&H8 Désactive le bouton Pages + ctrl associé
Salut X ! :O)
Avant de commencer, j'ai deux petits conseils à te donner.
1. Il faut Emploi l'opérateur Or afin de fusionner des Flags ensembles.
2. Il préférable d'employer des constantes au lieu de valeur "codé en
Ça rend le code plus flexible (d'un coup que la valeur des flags changent
jour) et le rend plus lisible.
Ex :
Form1.CommonDialog1.Flags = cdlPDDisablePrintToFile Or cdlPDNoSelection
Maintenant ton problème :
> Dans les flags d'un CommonDialog, je n'arrive pas à désactiver le
> compteurs du nombre de copies, si quelqu'un sait???
> '&H8 Désactive le bouton Pages + ctrl associé
Je crois que tu as mal lu la description des Flags.. :
http://msdn.microsoft.com/library/en-us/cmdlg98/html/vbproflagsprint.asp
Celui que tu cherches serait CdlPDUseDevModeCopies et, comme le dit la
description, ça ne fonctionnera pas si ton driver supporte cette option.
Il toutefois possible de désactiver toi même ces contrôles en utilisant
APIs.
L'emploi l'outil Spy++ (fournit avec VS6) te servira à déterminer quels
contrôles tu cherches et comment tu peux récupérer leur handles.
(Remarques que si tu n'es pas sûr d'avoir compris les 2 phrases ci-haut,
te recommande la page suivante :
qui te fournira toutes les informations nécessaires à la connaissance du
fonctionnement des fenêtres sous Windows.)
Voici enfin le code. Note que l'interface de la boite de dialogue dépend
ton driver d'imprimante, alors l'exemple pourrait nécessité des
modifications afin de fonctionner sur ton poste.
'***
' Form1
' 1 CommonDialog
Option Explicit
Private Sub Form_Load()
CommonDialog1.Orientation = cdlLandscape
CommonDialog1.Flags = cdlPDDisablePrintToFile Or cdlPDNoSelection
CommonDialog1.CancelError = True
Call StartTimer(Me.hWnd, 10)
Call CommonDialog1.ShowPrinter
Call Unload(Me)
End Sub
'***
' Module1
Private Declare Function SetTimer _
Lib "user32" _
( _
ByVal hWnd As Long, _
ByVal nIDEvent As Long, _
ByVal uElapse As Long, _
ByVal lpTimerFunc As Long _
) As Long
Private Declare Function KillTimer _
Lib "user32" _
( _
ByVal hWnd As Long, _
ByVal nIDEvent As Long _
) As Long
Private Declare Function FindWindow _
Lib "user32" _
Alias "FindWindowA" _
( _
ByVal lpClassName As String, _
ByVal lpWindowName As String _
) As Long
Private Declare Function FindWindowEx _
Lib "user32" _
Alias "FindWindowExA" _
( _
ByVal hWndParent As Long, _
ByVal hWndChildAfter As Long, _
ByVal lpszClass As String, _
ByVal lpszWindow As String _
) As Long
Private Declare Function EnableWindow _
Lib "user32" ( _
ByVal hWnd As Long, _
ByVal bEnable As Long _
) As Long
Private Declare Function GetClassNameA _
Lib "user32" _
( _
ByVal hWnd As Long, _
ByVal lpClassName As String, _
ByVal nMaxCount As Long _
) As Long
Private m_hWnd As Long
Public Sub StartTimer(ByRef hWnd As Long, ByRef nInterval As Long)
m_hWnd = hWnd
Call SetTimer(m_hWnd, 0, nInterval, AddressOf TimerProc)
End Sub
Private Sub StopTimer()
Call KillTimer(m_hWnd, 0)
End Sub
Private Function GetClassName(ByRef hWnd As Long) As String
GetClassName = Space$(256)
GetClassName = Left$(GetClassName, GetClassNameA(hWnd, GetClassName,
256))
End Function
Public Sub TimerProc(ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal
uElapse As Long, ByVal lpTimerFunc As Long)
Dim hDialogWnd As Long
Dim hWnd1 As Long
Dim hWnd2 As Long
' on test voir si la boîte de dialogue à été créée
hDialogWnd = FindWindow("#32770", vbNullString)
Debug.Print Hex$(hDialogWnd), GetClassName(hDialogWnd)
If (hDialogWnd > 0) Then
' si oui, on recherche les contrôles à rendre inaccessible
' Cherche l'onglet "Général"
hWnd1 = FindWindowEx(hDialogWnd, 0, vbNullString, "Général")
Debug.Print Hex$(hWnd1), GetClassName(hWnd1)
' Cherche le sous-contrôle (assez obscure celui là) contenant
l'interface
hWnd1 = FindWindowEx(hWnd1, 0, "#32770", vbNullString)
Debug.Print Hex$(hWnd1), GetClassName(hWnd1)
' Cherche le label "Nombre de copies"
' (3ième contrôle de classe "Static"
hWnd2 = FindWindowEx(hWnd1, 0, "Static", vbNullString)
hWnd2 = FindWindowEx(hWnd1, hWnd2, "Static", vbNullString)
hWnd2 = FindWindowEx(hWnd1, hWnd2, "Static", vbNullString)
Debug.Print Hex$(hWnd2), GetClassName(hWnd2)
Call EnableWindow(hWnd2, False)
' Cherche le textbox relié à "Nombre de copies"
' (2ième contrôle de classe "Edit"
hWnd2 = FindWindowEx(hWnd1, 0, "Edit", vbNullString)
hWnd2 = FindWindowEx(hWnd1, hWnd2, "Edit", vbNullString)
Debug.Print Hex$(hWnd2), GetClassName(hWnd2)
Call EnableWindow(hWnd2, False)
' Cherche le contrôle de type UpDown relié à "Nombre de copies"
' (seul contrôle de classe "msctls_updown32")
hWnd2 = FindWindowEx(hWnd1, 0, "msctls_updown32", vbNullString)
Debug.Print Hex$(hWnd2), GetClassName(hWnd2)
Call EnableWindow(hWnd2, False)
' on arrête le timer étant donné qu'on en a plus besoin
Call StopTimer
End If
End Sub
'***
En espérant t'avoir aider un tout p'tit peu..
--
Cordialement
Yanick
MVP pour Visual Basic
Salut X ! :O)
Avant de commencer, j'ai deux petits conseils à te donner.
1. Il faut Emploi l'opérateur Or afin de fusionner des Flags ensembles.
2. Il préférable d'employer des constantes au lieu de valeur "codé en
Ça rend le code plus flexible (d'un coup que la valeur des flags changent
jour) et le rend plus lisible.
Ex :
Form1.CommonDialog1.Flags = cdlPDDisablePrintToFile Or cdlPDNoSelection
Maintenant ton problème :
> Dans les flags d'un CommonDialog, je n'arrive pas à désactiver le
> compteurs du nombre de copies, si quelqu'un sait???
> '&H8 Désactive le bouton Pages + ctrl associé
Je crois que tu as mal lu la description des Flags.. :
http://msdn.microsoft.com/library/en-us/cmdlg98/html/vbproflagsprint.asp
Celui que tu cherches serait CdlPDUseDevModeCopies et, comme le dit la
description, ça ne fonctionnera pas si ton driver supporte cette option.
Il toutefois possible de désactiver toi même ces contrôles en utilisant
APIs.
L'emploi l'outil Spy++ (fournit avec VS6) te servira à déterminer quels
contrôles tu cherches et comment tu peux récupérer leur handles.
(Remarques que si tu n'es pas sûr d'avoir compris les 2 phrases ci-haut,
te recommande la page suivante :
qui te fournira toutes les informations nécessaires à la connaissance du
fonctionnement des fenêtres sous Windows.)
Voici enfin le code. Note que l'interface de la boite de dialogue dépend
ton driver d'imprimante, alors l'exemple pourrait nécessité des
modifications afin de fonctionner sur ton poste.
'***
' Form1
' 1 CommonDialog
Option Explicit
Private Sub Form_Load()
CommonDialog1.Orientation = cdlLandscape
CommonDialog1.Flags = cdlPDDisablePrintToFile Or cdlPDNoSelection
CommonDialog1.CancelError = True
Call StartTimer(Me.hWnd, 10)
Call CommonDialog1.ShowPrinter
Call Unload(Me)
End Sub
'***
' Module1
Private Declare Function SetTimer _
Lib "user32" _
( _
ByVal hWnd As Long, _
ByVal nIDEvent As Long, _
ByVal uElapse As Long, _
ByVal lpTimerFunc As Long _
) As Long
Private Declare Function KillTimer _
Lib "user32" _
( _
ByVal hWnd As Long, _
ByVal nIDEvent As Long _
) As Long
Private Declare Function FindWindow _
Lib "user32" _
Alias "FindWindowA" _
( _
ByVal lpClassName As String, _
ByVal lpWindowName As String _
) As Long
Private Declare Function FindWindowEx _
Lib "user32" _
Alias "FindWindowExA" _
( _
ByVal hWndParent As Long, _
ByVal hWndChildAfter As Long, _
ByVal lpszClass As String, _
ByVal lpszWindow As String _
) As Long
Private Declare Function EnableWindow _
Lib "user32" ( _
ByVal hWnd As Long, _
ByVal bEnable As Long _
) As Long
Private Declare Function GetClassNameA _
Lib "user32" _
( _
ByVal hWnd As Long, _
ByVal lpClassName As String, _
ByVal nMaxCount As Long _
) As Long
Private m_hWnd As Long
Public Sub StartTimer(ByRef hWnd As Long, ByRef nInterval As Long)
m_hWnd = hWnd
Call SetTimer(m_hWnd, 0, nInterval, AddressOf TimerProc)
End Sub
Private Sub StopTimer()
Call KillTimer(m_hWnd, 0)
End Sub
Private Function GetClassName(ByRef hWnd As Long) As String
GetClassName = Space$(256)
GetClassName = Left$(GetClassName, GetClassNameA(hWnd, GetClassName,
256))
End Function
Public Sub TimerProc(ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal
uElapse As Long, ByVal lpTimerFunc As Long)
Dim hDialogWnd As Long
Dim hWnd1 As Long
Dim hWnd2 As Long
' on test voir si la boîte de dialogue à été créée
hDialogWnd = FindWindow("#32770", vbNullString)
Debug.Print Hex$(hDialogWnd), GetClassName(hDialogWnd)
If (hDialogWnd > 0) Then
' si oui, on recherche les contrôles à rendre inaccessible
' Cherche l'onglet "Général"
hWnd1 = FindWindowEx(hDialogWnd, 0, vbNullString, "Général")
Debug.Print Hex$(hWnd1), GetClassName(hWnd1)
' Cherche le sous-contrôle (assez obscure celui là) contenant
l'interface
hWnd1 = FindWindowEx(hWnd1, 0, "#32770", vbNullString)
Debug.Print Hex$(hWnd1), GetClassName(hWnd1)
' Cherche le label "Nombre de copies"
' (3ième contrôle de classe "Static"
hWnd2 = FindWindowEx(hWnd1, 0, "Static", vbNullString)
hWnd2 = FindWindowEx(hWnd1, hWnd2, "Static", vbNullString)
hWnd2 = FindWindowEx(hWnd1, hWnd2, "Static", vbNullString)
Debug.Print Hex$(hWnd2), GetClassName(hWnd2)
Call EnableWindow(hWnd2, False)
' Cherche le textbox relié à "Nombre de copies"
' (2ième contrôle de classe "Edit"
hWnd2 = FindWindowEx(hWnd1, 0, "Edit", vbNullString)
hWnd2 = FindWindowEx(hWnd1, hWnd2, "Edit", vbNullString)
Debug.Print Hex$(hWnd2), GetClassName(hWnd2)
Call EnableWindow(hWnd2, False)
' Cherche le contrôle de type UpDown relié à "Nombre de copies"
' (seul contrôle de classe "msctls_updown32")
hWnd2 = FindWindowEx(hWnd1, 0, "msctls_updown32", vbNullString)
Debug.Print Hex$(hWnd2), GetClassName(hWnd2)
Call EnableWindow(hWnd2, False)
' on arrête le timer étant donné qu'on en a plus besoin
Call StopTimer
End If
End Sub
'***
En espérant t'avoir aider un tout p'tit peu..
--
Cordialement
Yanick
MVP pour Visual Basic
Salut X ! :O)
Avant de commencer, j'ai deux petits conseils à te donner.
1. Il faut Emploi l'opérateur Or afin de fusionner des Flags ensembles.
2. Il préférable d'employer des constantes au lieu de valeur "codé en
Ça rend le code plus flexible (d'un coup que la valeur des flags changent
jour) et le rend plus lisible.
Ex :
Form1.CommonDialog1.Flags = cdlPDDisablePrintToFile Or cdlPDNoSelection
Maintenant ton problème :
> Dans les flags d'un CommonDialog, je n'arrive pas à désactiver le
> compteurs du nombre de copies, si quelqu'un sait???
> '&H8 Désactive le bouton Pages + ctrl associé
Je crois que tu as mal lu la description des Flags.. :
http://msdn.microsoft.com/library/en-us/cmdlg98/html/vbproflagsprint.asp
Celui que tu cherches serait CdlPDUseDevModeCopies et, comme le dit la
description, ça ne fonctionnera pas si ton driver supporte cette option.
Il toutefois possible de désactiver toi même ces contrôles en utilisant
APIs.
L'emploi l'outil Spy++ (fournit avec VS6) te servira à déterminer quels
contrôles tu cherches et comment tu peux récupérer leur handles.
(Remarques que si tu n'es pas sûr d'avoir compris les 2 phrases ci-haut,
te recommande la page suivante :
qui te fournira toutes les informations nécessaires à la connaissance du
fonctionnement des fenêtres sous Windows.)
Voici enfin le code. Note que l'interface de la boite de dialogue dépend
ton driver d'imprimante, alors l'exemple pourrait nécessité des
modifications afin de fonctionner sur ton poste.
'***
' Form1
' 1 CommonDialog
Option Explicit
Private Sub Form_Load()
CommonDialog1.Orientation = cdlLandscape
CommonDialog1.Flags = cdlPDDisablePrintToFile Or cdlPDNoSelection
CommonDialog1.CancelError = True
Call StartTimer(Me.hWnd, 10)
Call CommonDialog1.ShowPrinter
Call Unload(Me)
End Sub
'***
' Module1
Private Declare Function SetTimer _
Lib "user32" _
( _
ByVal hWnd As Long, _
ByVal nIDEvent As Long, _
ByVal uElapse As Long, _
ByVal lpTimerFunc As Long _
) As Long
Private Declare Function KillTimer _
Lib "user32" _
( _
ByVal hWnd As Long, _
ByVal nIDEvent As Long _
) As Long
Private Declare Function FindWindow _
Lib "user32" _
Alias "FindWindowA" _
( _
ByVal lpClassName As String, _
ByVal lpWindowName As String _
) As Long
Private Declare Function FindWindowEx _
Lib "user32" _
Alias "FindWindowExA" _
( _
ByVal hWndParent As Long, _
ByVal hWndChildAfter As Long, _
ByVal lpszClass As String, _
ByVal lpszWindow As String _
) As Long
Private Declare Function EnableWindow _
Lib "user32" ( _
ByVal hWnd As Long, _
ByVal bEnable As Long _
) As Long
Private Declare Function GetClassNameA _
Lib "user32" _
( _
ByVal hWnd As Long, _
ByVal lpClassName As String, _
ByVal nMaxCount As Long _
) As Long
Private m_hWnd As Long
Public Sub StartTimer(ByRef hWnd As Long, ByRef nInterval As Long)
m_hWnd = hWnd
Call SetTimer(m_hWnd, 0, nInterval, AddressOf TimerProc)
End Sub
Private Sub StopTimer()
Call KillTimer(m_hWnd, 0)
End Sub
Private Function GetClassName(ByRef hWnd As Long) As String
GetClassName = Space$(256)
GetClassName = Left$(GetClassName, GetClassNameA(hWnd, GetClassName,
256))
End Function
Public Sub TimerProc(ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal
uElapse As Long, ByVal lpTimerFunc As Long)
Dim hDialogWnd As Long
Dim hWnd1 As Long
Dim hWnd2 As Long
' on test voir si la boîte de dialogue à été créée
hDialogWnd = FindWindow("#32770", vbNullString)
Debug.Print Hex$(hDialogWnd), GetClassName(hDialogWnd)
If (hDialogWnd > 0) Then
' si oui, on recherche les contrôles à rendre inaccessible
' Cherche l'onglet "Général"
hWnd1 = FindWindowEx(hDialogWnd, 0, vbNullString, "Général")
Debug.Print Hex$(hWnd1), GetClassName(hWnd1)
' Cherche le sous-contrôle (assez obscure celui là) contenant
l'interface
hWnd1 = FindWindowEx(hWnd1, 0, "#32770", vbNullString)
Debug.Print Hex$(hWnd1), GetClassName(hWnd1)
' Cherche le label "Nombre de copies"
' (3ième contrôle de classe "Static"
hWnd2 = FindWindowEx(hWnd1, 0, "Static", vbNullString)
hWnd2 = FindWindowEx(hWnd1, hWnd2, "Static", vbNullString)
hWnd2 = FindWindowEx(hWnd1, hWnd2, "Static", vbNullString)
Debug.Print Hex$(hWnd2), GetClassName(hWnd2)
Call EnableWindow(hWnd2, False)
' Cherche le textbox relié à "Nombre de copies"
' (2ième contrôle de classe "Edit"
hWnd2 = FindWindowEx(hWnd1, 0, "Edit", vbNullString)
hWnd2 = FindWindowEx(hWnd1, hWnd2, "Edit", vbNullString)
Debug.Print Hex$(hWnd2), GetClassName(hWnd2)
Call EnableWindow(hWnd2, False)
' Cherche le contrôle de type UpDown relié à "Nombre de copies"
' (seul contrôle de classe "msctls_updown32")
hWnd2 = FindWindowEx(hWnd1, 0, "msctls_updown32", vbNullString)
Debug.Print Hex$(hWnd2), GetClassName(hWnd2)
Call EnableWindow(hWnd2, False)
' on arrête le timer étant donné qu'on en a plus besoin
Call StopTimer
End If
End Sub
'***
En espérant t'avoir aider un tout p'tit peu..
--
Cordialement
Yanick
MVP pour Visual Basic
je crois que "X", n'aime pas bien l'anglais.. ;o))
je crois que "X", n'aime pas bien l'anglais.. ;o))
je crois que "X", n'aime pas bien l'anglais.. ;o))
> Peux-tu m'expliquer :o) ???
> Peux-tu m'expliquer :o) ???
> Peux-tu m'expliquer :o) ???
> Mais sinon mauvais lien, je ne crois pas devoir lire le nom que le lien
fait
apparaître...
Ok j'ai compris, merci :o)
Mais sinon mauvais lien, je ne crois pas devoir lire le nom que le lien
fait
apparaître...
----------------
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news: %
|> Peux-tu m'expliquer :o) ???
|
| Yep !
|
| Tu te rappelles de l'algèbre de BOOL ?
|
| opérateur ET
| vrai ET vrai = vrai
| vrai ET faux = faux
| faux ET vrai = faux
| faux ET faux = faux
|
| opérateur OU
| vrai OU vrai = vrai
| vrai OU faux = vrai
| faux OU vrai = vrai
| faux OU faux = faux
|
|
|
| Les opérateur And et Or appliquer sur des nombres en VB applique la même
| logique sur chacun des bits de ces nombres :
|
| opérateur ET
| 1 ET 1 = 1
| 1 ET 0 = 0
| 0 ET 1 = 0
| 0 ET 0 = 0
|
| opérateur OU
| 1 OU 1 = 1
| 1 OU 0 = 1
| 0 OU 1 = 1
| 0 OU 0 = 0
|
|
| Par exemple, supposons les deux valeurs suivantes (en notation binaire)
:
| 1 => 0001
| 2 => 0010
| 8 => 1000
|
| Si on applique un And tu obtiens ceci (je compare les trois nombres en
deux
| étapes) :
| 0001
| 0010 And
| ------------
| 0000
| 1000 And
| ------------
| 0000
|
|
| Tandis que si on applique un Or tu obtiens ceci :
| 0001
| 0010 Or
| ------------
| 0011
| 1000 Or
| ------------
| 1011
|
| on obtient donc une "fusion" des trois nombres
|
|
| Ce message t'en diras plus avec un exemple théorique suivi d'un exemple
de
| code :
|
http://groups.google.com/group/microsoft.public.fr.vb/browse_frm/thread/add2c7a07fc4bbdf/af6ff365e2f675b5#af6ff365e2f675b5
|
|
| --
| Cordialement
| Yanick
| MVP pour Visual Basic
|
|
> Mais sinon mauvais lien, je ne crois pas devoir lire le nom que le lien
fait
apparaître...
Ok j'ai compris, merci :o)
Mais sinon mauvais lien, je ne crois pas devoir lire le nom que le lien
fait
apparaître...
----------------
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news: %23JFFORexFHA.3312@TK2MSFTNGP09.phx.gbl...
|> Peux-tu m'expliquer :o) ???
|
| Yep !
|
| Tu te rappelles de l'algèbre de BOOL ?
|
| opérateur ET
| vrai ET vrai = vrai
| vrai ET faux = faux
| faux ET vrai = faux
| faux ET faux = faux
|
| opérateur OU
| vrai OU vrai = vrai
| vrai OU faux = vrai
| faux OU vrai = vrai
| faux OU faux = faux
|
|
|
| Les opérateur And et Or appliquer sur des nombres en VB applique la même
| logique sur chacun des bits de ces nombres :
|
| opérateur ET
| 1 ET 1 = 1
| 1 ET 0 = 0
| 0 ET 1 = 0
| 0 ET 0 = 0
|
| opérateur OU
| 1 OU 1 = 1
| 1 OU 0 = 1
| 0 OU 1 = 1
| 0 OU 0 = 0
|
|
| Par exemple, supposons les deux valeurs suivantes (en notation binaire)
:
| 1 => 0001
| 2 => 0010
| 8 => 1000
|
| Si on applique un And tu obtiens ceci (je compare les trois nombres en
deux
| étapes) :
| 0001
| 0010 And
| ------------
| 0000
| 1000 And
| ------------
| 0000
|
|
| Tandis que si on applique un Or tu obtiens ceci :
| 0001
| 0010 Or
| ------------
| 0011
| 1000 Or
| ------------
| 1011
|
| on obtient donc une "fusion" des trois nombres
|
|
| Ce message t'en diras plus avec un exemple théorique suivi d'un exemple
de
| code :
|
http://groups.google.com/group/microsoft.public.fr.vb/browse_frm/thread/add2c7a07fc4bbdf/af6ff365e2f675b5#af6ff365e2f675b5
|
|
| --
| Cordialement
| Yanick
| MVP pour Visual Basic
|
|
> Mais sinon mauvais lien, je ne crois pas devoir lire le nom que le lien
fait
apparaître...
Ok j'ai compris, merci :o)
Mais sinon mauvais lien, je ne crois pas devoir lire le nom que le lien
fait
apparaître...
----------------
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news: %
|> Peux-tu m'expliquer :o) ???
|
| Yep !
|
| Tu te rappelles de l'algèbre de BOOL ?
|
| opérateur ET
| vrai ET vrai = vrai
| vrai ET faux = faux
| faux ET vrai = faux
| faux ET faux = faux
|
| opérateur OU
| vrai OU vrai = vrai
| vrai OU faux = vrai
| faux OU vrai = vrai
| faux OU faux = faux
|
|
|
| Les opérateur And et Or appliquer sur des nombres en VB applique la même
| logique sur chacun des bits de ces nombres :
|
| opérateur ET
| 1 ET 1 = 1
| 1 ET 0 = 0
| 0 ET 1 = 0
| 0 ET 0 = 0
|
| opérateur OU
| 1 OU 1 = 1
| 1 OU 0 = 1
| 0 OU 1 = 1
| 0 OU 0 = 0
|
|
| Par exemple, supposons les deux valeurs suivantes (en notation binaire)
:
| 1 => 0001
| 2 => 0010
| 8 => 1000
|
| Si on applique un And tu obtiens ceci (je compare les trois nombres en
deux
| étapes) :
| 0001
| 0010 And
| ------------
| 0000
| 1000 And
| ------------
| 0000
|
|
| Tandis que si on applique un Or tu obtiens ceci :
| 0001
| 0010 Or
| ------------
| 0011
| 1000 Or
| ------------
| 1011
|
| on obtient donc une "fusion" des trois nombres
|
|
| Ce message t'en diras plus avec un exemple théorique suivi d'un exemple
de
| code :
|
http://groups.google.com/group/microsoft.public.fr.vb/browse_frm/thread/add2c7a07fc4bbdf/af6ff365e2f675b5#af6ff365e2f675b5
|
|
| --
| Cordialement
| Yanick
| MVP pour Visual Basic
|
|