Caractére numérique selon le modèle lcd( comme dans les montres numérique... )

Soyez le premier à donner votre avis sur cette source.

Vue 3 960 fois - Téléchargée 262 fois

Description

Ce petit programme sert a afficher des caractére numérique selon le modéle lcd. C'est à dire avec des lignes( la fonction line() est utilisé). Vous écrirer par exemple "546" et ce nombre sera reproduit avec des lignes. En espérant que ca puisse donner des idées et aider quelque personnes.

Source / Exemple :


'Tout est dans le zip.  

Option Explicit
Const DIST_CENTAINE = 550       'Distance du bord à la position des centaines
Const DIST_DIZAINE = 2500       'Distance du bord à la position des dizaines
Const DIST_UNITÉ = 4450           'Distance du bord à la position des centaines

'Définir Sub A selon le modèle lcd
Sub A(ByVal Dist As Integer)
    Line (550 + Dist, 625)-(1650 + Dist, 625)
End Sub
'Définir Sub B selon le modèle lcd
Sub B(ByVal Dist As Integer)
    Line (550 + Dist, 1250)-(1650 + Dist, 1250)
End Sub
'Définir Sub C selon le modèle lcd
Sub C(ByVal Dist As Integer)
    Line (550 + Dist, 1875)-(1650 + Dist, 1875)
End Sub
'Définir Sub D selon le modèle lcd
Sub D(ByVal Dist As Integer)
    Line (550 + Dist, 675)-(550 + Dist, 1200)
End Sub
'Définir Sub E selon le modèle lcd
Sub E(ByVal Dist As Integer)
    Line (1650 + Dist, 675)-(1650 + Dist, 1200)
End Sub
'Définir Sub F selon le modèle lcd
Sub F(ByVal Dist As Integer)
    Line (550 + Dist, 1300)-(550 + Dist, 1875)
End Sub
'Définir Sub G selon le modèle lcd
Sub G(ByVal Dist As Integer)
    Line (1650 + Dist, 1300)-(1650 + Dist, 1825)
End Sub

'Définir et dessiner chacun des 10 symboles(0-9)
Sub Dessiner(ByVal Chiffre As Integer, ByVal Distance)

    Select Case Chiffre
        Case 0:                                 'Dessiner  0
                Call A(Distance)
                Call C(Distance)
                Call D(Distance)
                Call E(Distance)
                Call F(Distance)
                Call G(Distance)
        Case 1:                                 'Dessiner  1
                Call G(Distance)
                Call E(Distance)
        
        Case 2:                                 'Dessiner  2
                Call A(Distance)
                Call B(Distance)
                Call E(Distance)
                Call F(Distance)
                Call C(Distance)
        Case 3:                                 'Dessiner  3
                Call A(Distance)
                Call B(Distance)
                Call C(Distance)
                Call E(Distance)
                Call G(Distance)
        Case 4:                                 'Dessiner  4
                Call B(Distance)
                Call D(Distance)
                Call E(Distance)
                Call G(Distance)
        Case 5:                                 'Dessiner 5
                Call A(Distance)
                Call B(Distance)
                Call C(Distance)
                Call D(Distance)
                Call G(Distance)
        Case 6:                                 'Dessiner  6
                Call A(Distance)
                Call B(Distance)
                Call C(Distance)
                Call D(Distance)
                Call F(Distance)
                Call G(Distance)
        Case 7:                                 'Dessiner  7
                Call A(Distance)
                Call G(Distance)
                Call E(Distance)
        Case 8:                                 'Dessiner  8
                Call A(Distance)
                Call B(Distance)
                Call C(Distance)
                Call D(Distance)
                Call E(Distance)
                Call F(Distance)
                Call G(Distance)
        Case 9:                                 'Dessiner  9
                Call A(Distance)
                Call B(Distance)
                Call C(Distance)
                Call D(Distance)
                Call E(Distance)
                Call G(Distance)
    
    End Select
    
    
End Sub
'Définir Sub pour allez cherchez chacune des trois positions
Sub ExtrairePosition(ByVal Chiffre As Integer, ByVal Position As Integer, ByRef Résultat)

    Select Case Position
            Case 1:                             'Extraire la positon des unités
                    Résultat = Chiffre Mod 10
            Case 10:                            'Extraire la position des dizaines
                    Résultat = Int(Chiffre / 10) Mod 10
            Case 100:                           'Extraire la positon des centaines
                    Résultat = Int(Chiffre / 100)
    End Select
                
End Sub

Private Sub cmdExécuter_Click()

    Dim Nombre As Integer
    Dim ChiffreExtrait As Integer     'Résultat de l'extraction de la position
    
    'Obtenir nombre
    Nombre = Val(txtNombre)
    Cls                               'Effacer représentation précédente
    
    If Nombre >= 0 And Nombre <= 999 Then
        Call ExtrairePosition(Nombre, 100, ChiffreExtrait)
        Call Dessiner(ChiffreExtrait, DIST_CENTAINE)
        Call ExtrairePosition(Nombre, 10, ChiffreExtrait)
        Call Dessiner(ChiffreExtrait, DIST_DIZAINE)
        Call ExtrairePosition(Nombre, 1, ChiffreExtrait)
        Call Dessiner(ChiffreExtrait, DIST_UNITÉ)
    Else
        MsgBox "NOMBRE INVALIDE: Votre nombre doit être compris entre 0 et 999", vbCritical
        txtNombre.SetFocus
    End If

End Sub

Private Sub txtNombre_GotFocus()
    'Sélectionner le contenu du textbox
    txtNombre.SelStart = 0
    txtNombre.SelLength = Len(txtNombre.Text)
End Sub

Private Sub cmdFermer_Click()
    'Fin du programme
    End
End Sub

Conclusion :


Ceci est ma première source que je dépose sur le site est et en même temps le premier projet Visual Basic que j'ai du concevoir. Le code n'est pas très compliquer mais s'adresse à tous.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

FScorpion
Messages postés
16
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
18 janvier 2002
-
C'est vrai Overdack, ta méthode est également très valide. C'est une autre facon de reproduire les caractères LCD correctement. Par contre je trouve ton code plus lourd et plus difficile à modifier.
OverDarck2
Messages postés
15
Date d'inscription
vendredi 2 novembre 2001
Statut
Membre
Dernière intervention
18 janvier 2002
-
En fait c'est pas mal mais quand on regarde de plus pres on voi bien que il y a plus simple (pas plus court mais plus simple) donc wala si sa t'intersse :
http://www.vbfrance.com/article.asp?Val=3162
OverDarck2
Messages postés
15
Date d'inscription
vendredi 2 novembre 2001
Statut
Membre
Dernière intervention
18 janvier 2002
-
C bien !!
7/10
cs_max12
Messages postés
1491
Date d'inscription
dimanche 19 novembre 2000
Statut
Modérateur
Dernière intervention
7 juillet 2014
-
:)
FScorpion
Messages postés
16
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
18 janvier 2002
-
Ne vous génez pas pour mettre des commentaires....

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.