Le cas le plus fréquent c'est la comparaison entre les type signés et non signés ou dans les conditions des boucles par exemple plusieurs fonctions renvoient -1 et si on utilise ça avec un type non signé la condition ne se réalisera jamais heureusement dans certains cas le compilateur les signale mais pas tous.Par exemple, vu la taille des disques actuels, si je veux une marge de sécurité vers le haut je vais choisir une variable de type QWord (unsigned) car une variable Int64 me fera perdre toute la range 0...-92233..., étant entendu qu'il ne peut pas y avoir de tailles négatives dans ce domaine.
Mais si tu travailles dans le bancaire, tu devras choisir des variables signées car tu pourras avoir des soldes négatifs, des fois.
Oui c'est ça en VB6 Long et Integer sont signés et Byte non signé sur un octet..Mais un Integer qui va de -N à +N est-il un nombre signé ? (juste pour m'assurer que j'ai bien tout compris).
Pour revenir au sujet initial de la discussion j'ai constater qu l'utilisation de la contraste et plus pertinent que la luminance et s'adapte bien aux différentes nuances des couleurs ..
test sur VBA Excel
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
21
22
23
24
25
26
27
28 Private Declare Function GetSysColor Lib "user32" (ByVal ColIdx As Long) As Long Private Function Ct(ByVal Value As Long, ByVal A As Integer) As Long Dim m As Long m = (Abs(127 - Value) * A) \ 255 Ct = IIf(m > 127, Value - m, Value + m) If Ct > 255 Then Ct = 255 ElseIf (Ct < 0) Then Ct = 0 End If End Function Function ChangerContrast(ByVal aColor As Long, ByVal ALevel As Integer) As Long Dim R As Byte, G As Byte, B As Byte If aColor < 0 Then aColor = GetSysColor(aColor And &HFF) End If R = aColor And &HFF G = (aColor \ &H100) And &HFF B = (aColor \ &H10000) And &HFF ChangerContrast = RGB(Ct(R, ALevel), Ct(G, ALevel), Ct(B, ALevel)) End Function Private Sub ScrollBar1_Change() CommandButton1.ForeColor = ChangerContrast(CommandButton1.BackColor, ScrollBar1.Value) End Sub
Partager