Afficher un nombre avec des dels

Contenu du snippet

Un simple code :

Source / Exemple :


Type LedConst
    L1 As Boolean
    L2 As Boolean
    L3 As Boolean
    L4 As Boolean
    L5 As Boolean
    L6 As Boolean
    L7 As Boolean
End Type

Function SetDiode(ThePicture As PictureBox, PosX As Long, PosY As Long, Optional Direction As Long = 1, Optional LedSize As Long = 400, Optional LedColor As Long = vbRed)
    ThePicture.AutoRedraw = True
    If Direction = 1 Then
      For i = 1 To LedSize / 15
       ThePicture.Line (PosX + i, PosY - i)-(PosX + i, PosY + LedSize + i), LedColor
      Next i
      For i = 1 To LedSize / 15
        ThePicture.Line (PosX + (LedSize / 15) + i, PosY - (LedSize / 15) + i)-(PosX + (LedSize / 15) + i, PosY + LedSize + (LedSize / 15) - i), LedColor
      Next i
    Else
      For i = 1 To LedSize / 15
       ThePicture.Line (PosY + LedSize + i, PosX + i)-(PosY - i, PosX + i), LedColor
      Next i
      For i = 1 To LedSize / 15
        ThePicture.Line (PosY + LedSize + (LedSize / 15) - i, PosX + (LedSize / 15) + i)-(PosY - (LedSize / 15) + i, PosX + (LedSize / 15) + i), LedColor
      Next i
    End If
End Function

Function DigitaleNumber(ThePicture As PictureBox, Number As Variant, PosX As Long, PosY As Long, Optional LedSize As Long = 500, Optional LedColor As Long = vbRed)
    Dim LedNumber(0 To 9) As LedConst, Bold As Long, R As Long, V As Long, B As Long
        
    LedNumber(0).L1 = True: LedNumber(0).L2 = True: LedNumber(0).L3 = True: LedNumber(0).L4 = True: LedNumber(0).L5 = True: LedNumber(0).L6 = False: LedNumber(0).L7 = True
    LedNumber(1).L1 = False: LedNumber(1).L2 = False: LedNumber(1).L3 = True: LedNumber(1).L4 = True: LedNumber(1).L5 = False: LedNumber(1).L6 = False: LedNumber(1).L7 = False
    LedNumber(2).L1 = False: LedNumber(2).L2 = True: LedNumber(2).L3 = True: LedNumber(2).L4 = False: LedNumber(2).L5 = True: LedNumber(2).L6 = True: LedNumber(2).L7 = True
    LedNumber(3).L1 = False: LedNumber(3).L2 = False: LedNumber(3).L3 = True: LedNumber(3).L4 = True: LedNumber(3).L5 = True: LedNumber(3).L6 = True: LedNumber(3).L7 = True
    LedNumber(4).L1 = True: LedNumber(4).L2 = False: LedNumber(4).L3 = True: LedNumber(4).L4 = True: LedNumber(4).L5 = False: LedNumber(4).L6 = True: LedNumber(4).L7 = False
    LedNumber(5).L1 = True: LedNumber(5).L2 = False: LedNumber(5).L3 = False: LedNumber(5).L4 = True: LedNumber(5).L5 = True: LedNumber(5).L6 = True: LedNumber(5).L7 = True
    LedNumber(6).L1 = True: LedNumber(6).L2 = True: LedNumber(6).L3 = False: LedNumber(6).L4 = True: LedNumber(6).L5 = True: LedNumber(6).L6 = True: LedNumber(6).L7 = True
    LedNumber(7).L1 = True: LedNumber(7).L2 = False: LedNumber(7).L3 = True: LedNumber(7).L4 = True: LedNumber(7).L5 = True: LedNumber(7).L6 = False: LedNumber(7).L7 = False
    LedNumber(8).L1 = True: LedNumber(8).L2 = True: LedNumber(8).L3 = True: LedNumber(8).L4 = True: LedNumber(8).L5 = True: LedNumber(8).L6 = True: LedNumber(8).L7 = True
    LedNumber(9).L1 = True: LedNumber(9).L2 = False: LedNumber(9).L3 = True: LedNumber(9).L4 = True: LedNumber(9).L5 = True: LedNumber(9).L6 = True: LedNumber(9).L7 = True
   
    ThePicture.AutoRedraw = True
    ThePicture.Cls
    
    Bold = LedSize / 15
    
    R = Int(LedColor Mod 256)
    V = Int((LedColor - R) / 256 Mod 256)
    B = Int((LedColor - R) / 256 / 256)
    
    If R > 0 Then R = 75
    If V > 0 Then V = 75
    If B > 0 Then B = 75
    
    For i = 0 To Len(Number) - 1
      If Not LedNumber(Mid(Number, i + 1, 1)).L1 Then Call SetDiode(ThePicture, i * 2 * LedSize + PosX, PosY, 1, LedSize, RGB(R, V, B))
      If Not LedNumber(Mid(Number, i + 1, 1)).L2 Then Call SetDiode(ThePicture, i * 2 * LedSize + PosX, PosY + LedSize + Bold * 5, 1, LedSize, RGB(R, V, B))
      If Not LedNumber(Mid(Number, i + 1, 1)).L3 Then Call SetDiode(ThePicture, i * 2 * LedSize + (PosX + LedSize + Bold * 5), PosY, 1, LedSize, RGB(R, V, B))
      If Not LedNumber(Mid(Number, i + 1, 1)).L4 Then Call SetDiode(ThePicture, i * 2 * LedSize + (PosX + LedSize + Bold * 5), PosY + LedSize + Bold * 5, 1, LedSize, RGB(R, V, B))
      If Not LedNumber(Mid(Number, i + 1, 1)).L5 Then Call SetDiode(ThePicture, PosY - Bold * 3, i * 2 * LedSize + (PosX + Bold * 3), 2, LedSize, RGB(R, V, B))
      If Not LedNumber(Mid(Number, i + 1, 1)).L6 Then Call SetDiode(ThePicture, PosY + LedSize + Bold, i * 2 * LedSize + (PosX + Bold * 3), 2, LedSize, RGB(R, V, B))
      If Not LedNumber(Mid(Number, i + 1, 1)).L7 Then Call SetDiode(ThePicture, PosY + LedSize * 2 + Bold * 6, i * 2 * LedSize + (PosX + Bold * 3), 2, LedSize, RGB(R, V, B))
    Next i
    
    For i = 0 To Len(Number) - 1
      If LedNumber(Mid(Number, i + 1, 1)).L1 Then Call SetDiode(ThePicture, i * 2 * LedSize + PosX, PosY, 1, LedSize, LedColor)
      If LedNumber(Mid(Number, i + 1, 1)).L2 Then Call SetDiode(ThePicture, i * 2 * LedSize + PosX, PosY + LedSize + Bold * 5, 1, LedSize, LedColor)
      If LedNumber(Mid(Number, i + 1, 1)).L3 Then Call SetDiode(ThePicture, i * 2 * LedSize + (PosX + LedSize + Bold * 5), PosY, 1, LedSize, LedColor)
      If LedNumber(Mid(Number, i + 1, 1)).L4 Then Call SetDiode(ThePicture, i * 2 * LedSize + (PosX + LedSize + Bold * 5), PosY + LedSize + Bold * 5, 1, LedSize, LedColor)
      If LedNumber(Mid(Number, i + 1, 1)).L5 Then Call SetDiode(ThePicture, PosY - Bold * 3, i * 2 * LedSize + (PosX + Bold * 3), 2, LedSize, LedColor)
      If LedNumber(Mid(Number, i + 1, 1)).L6 Then Call SetDiode(ThePicture, PosY + LedSize + Bold, i * 2 * LedSize + (PosX + Bold * 3), 2, LedSize, LedColor)
      If LedNumber(Mid(Number, i + 1, 1)).L7 Then Call SetDiode(ThePicture, PosY + LedSize * 2 + Bold * 6, i * 2 * LedSize + (PosX + Bold * 3), 2, LedSize, LedColor)
    Next i
End Function

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.