Structuration prg - tutorial

Contenu du snippet

Voici quelques lignes de codes pour ceux qui commencent avec
vb. Le langage basic est souvent fouilli du fait qu'il est facile
et qu'on peut faire des choses sympas sans respecter des règles
élémentaires de structurations. C'est dommage car quand un prg
devient important on ne comprends plus rien du tout et ce même
si le but à atteindre est simple.

Euuhh c'est aussi un convertisseur euros >> francs !! pour rire -:)

@+, VIC

Source / Exemple :


Option Explicit
'--------------
'--------------------------------------
'   Ce source n'a qu'un but.
'   Expliquer un peu la STRUCTURATION
'   d'un programme.
'   J'ai choisi l'exemple d'un convertisseur
'   euros >> francs , francs >> euros
'   pour faire un clein d'oeuil à ceux
'   qui disent que vbfrance.com contient
'   trop de source sur le sujet !!
'
'   Vous remarquerez que ce source
'   sous cette forme n'existe pas ??

'--------------------------------------
'/*
'           SECTION DECLARATION
'
'*/
'---------------------------------------
'Une énumération permet de lever toute ambiguité quand
'à la valeur de la variable qui pointera dessus (ici mvarConversion)
'on aurait put écrire EURO = 0 : FRANCS = 1 mais par défaut
'VB incrémente la valeur automatiquement
Private Enum Conversion
    EURO        'vaut 0
    FRANCS      'vaut 1
End Enum

'Ceci est une variable de niveau module qui pointe
'sur l'enumeration Conversion et ne peut avoir que
'deux valeurs (0 >> EURO ou 1 >> FRANCS...)
Private mvarConversion As Conversion
'---------------------------------------

'Il vaut toujours mieux utiliser des Constantes pour
'contenir une valeur qui sera toujours la même (...!)
Private Const TAUX_EURO = 6.55957

Private Sub txtEuro_Click()
    init
End Sub
'/*
'           SECTION EVENEMENTS
'
'*/
Private Sub txtEuro_KeyPress(KeyAscii As Integer)

    If KeyAscii = vbKeyBack Then Exit Sub   'BackSpace
    If KeyAscii = 46 Then Exit Sub          'Point décimal
    
    'L'évènement KeyPress se déclenche avant même
    'que la sortie soit opéré dans le contrôle concerné.
    'Donc on peut contrôler la saisie pour vérifier
    'si elle est conforme à nos attentes.
    'Dans le cas contraire on peut stopper la saisie en
    'renvoyant keyascii = 0 car la variable Keyascii
    'est passé par référence (byRef) et donc modifiable par
    'la procédure keyPress.
    '---------------------
    
    If Not IsNumeric(Chr(KeyAscii)) Then KeyAscii = 0
        
    mvarConversion = EURO 'On opère une conversion
                          'EURO >> FRANCS
End Sub

Private Sub txtEuro_KeyUp(KeyCode As Integer, Shift As Integer)
    Convert KeyCode
End Sub

Private Sub txtFrancs_Click()
    init
End Sub

Private Sub txtFrancs_KeyPress(KeyAscii As Integer)
    If KeyAscii = vbKeyBack Then Exit Sub   'BackSpace
    If KeyAscii = 46 Then Exit Sub          'Point décimal
    
    If Not IsNumeric(Chr(KeyAscii)) Then KeyAscii = 0
        
    mvarConversion = FRANCS 'On opère une conversion
                            'FRANCS >> EURO
End Sub

Private Sub Convert(ByVal intCharCode As Integer)
    If mvarConversion = EURO Then
        txtFrancs = Round(Val(txtEuro) * TAUX_EURO, 2)
    Else
        txtEuro = Round(Val(txtFrancs) / TAUX_EURO, 2)
    End If
End Sub

Private Sub txtFrancs_KeyUp(KeyCode As Integer, Shift As Integer)
    If KeyCode = 0 Then Exit Sub
    Convert KeyCode
End Sub

Private Sub init()
    txtEuro = ""
    txtFrancs = ""
End Sub

Conclusion :


Pour faire fonctionner le prg :
1 - Ouvrir vb
2 - mettre la form sur BorderStyle = 1 (fixedSingle)
3 - Ajouter un contrôle textBox nommé txtFrancs
4 - Ajouter un contrôle textBox nommé txtEuro
5 - Ajouter deux contrôles label pour afficher les sigles en face
des contrôles textBox.
6 - faire un copier & coller du code.
'--------------------------------------
Bonne prog -:)

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.