Graphiques
 
- Dégradé
- Animations BitBlt
- Animations Pic
- Contrôle Animation
- Défilement d'image
 
Interface
 
- Barre d'outils
- Barre de progression
- Clignotement
- Interface MDI
- Barre d'état
 
Texte & système
 
- Texte sur image
- Taille variable
- Informations système
 
Fichiers
 
- Grand fichier
- Choix de police
- Dictionnaire Word
- Listes
- Fichiers binaires
 
Souris et touches
 
- Curseur animé
- Touches
 

Liste dynamique en ordre alphabétique
Le contenu d'une liste peut être manipulé à partir du code et non seulement à l'aide de la fenêtre des propriétés. Cela peut se révéler très utile lorsqu'on veut changer leur contenu sans avoir à aller jouer dans le code du programme à chaque fois.
  1. Commencez par ouvrir le Bloc-notes (Programmes, Accessoires, Bloc-notes).

  2. Tapez le texte ci-dessous exactement de la façon indiquée.

Un|Deux|Trois|Quatre|Cinq|

  1. Enregistrez ce fichier sous le nom Liste.Txt dans le même répertoire que celui où vous allez sauvegarder votre programme VisualBasic.

  2. Créez une nouveau programme que vous nommez Ex_15xx.vbp. Nommez la feuille F_Liste et réglez la propriété CAPTION à Travail avec les listes. Les autres caractéristiques de la feuille sont laissées à votre discrétion.

  3. Ajoutez une étiquette que vous nommez ET_Message dans le haut de la feuille (voir l'image plus bas). Voici les caractéristiques que vous devez respecter (les autres sont libres):

  • NAME = ET_Message

  • ALIGNMENT = Center

  • CAPTION = Sélectionnez une option dans la liste ci-dessous

  1. Ajoutez une liste (ComboBox) que vous nommez CO_Liste. Les propriétés TEXT et LIST sont vides. Toutes les autres caractéristiques sont laissées à votre bon goût.

  1. Ajoutez un nouveau module .BAS que vous nommez Module1.bas. Servez-vous de celui-ci pour initialiser les variables suivantes.

Global V_items() As Variant
Global V_C As Integer
Global V_Liste As String

  1. Créez une nouvelle procédure que vous nommez Séparer. Voici le code qu'elle contient.

Public Sub Separer()
   Dim V_a, V_d As Integer  
'Déclaration des variables
   Dim V_b As String
   V_b = ""   
'Réinitialisation des variables
   V_C = 0
   V_d = 0

   'Extraction des éléments de la liste
   For V_a = 1 To Len(V_Liste) 
'Boucle en fonction du nombre de caractères-->
   de la liste

      If Mid(V_Liste, V_a, 1) <> "|" Then   
'Si le caractère est différent de |...
         V_b = V_b & Mid(V_Liste, V_a, 1)   
'On l'ajoute à V_B...
      Else   
'sinon...
         V_C = V_C + 1   
'on augmente la valeur de V_C...
         ReDim Preserve V_items(V_C)  
'on agrandit la variable dimensionnée...
         V_items(V_C - 1) = V_b   
'on ajoute le contenu de V_b dans la variable...
         V_b = ""  
'on réinitialise la variable
     End If
   Next V_a

   ReDim Preserve V_items(V_C - 1)  
'on enlève l'espace vide..
End Sub

  1. Ajoutez le code ci-dessous dans l'événement FORM_LOAD de la feuille F_Liste.

Private Sub Form_Load()
   Dim V_Chemin As String  
'Déclaration des variables
   Dim V_Fichier As String
   Dim V_I As Integer
   Dim V_N As Long  
'Servira pour le tri à bulles
   V_Fichier = ""   
'Initialisation des variables
   V_Chemin = ""
   V_Chemin = App.Path  
'Recherche du chemin de l'application (répertoires)
   If Right(V_Chemin, 1) <> "\" Then   'Vérifier le dernier caractère de App.path
      V_Fichier = V_Chemin & "\Liste.txt"      
'Création de l'adresse du fichier 
  
Else
     
V_Fichier = V_Chemin & "Liste.txt"       'Création de l'adresse du fichier
  
End if
   V_Liste = ""   
'Réinitialisation de V_Liste

   Open V_Fichier For Input As #1   
'Ouverture du fichier
   Line Input #1, V_Liste   
'Lecture des données
   Close #1
'Fermeture du fichier

   Separer   
'Appel de la procédure d'identification des items de la liste

   V_N = UBound(V_items)  
'Ubound donne le nombre d'items dans la liste
   ReDim Preserve V_items(V_N)  
'Redimensionne la liste une dernière fois
   Tri_A_Bulles V_N, V_items(), True 
'Appel de la procédure de tri en ordre -->
   tique croissant (False donnerait un ordre décroissant)

   For V_I = 0 To V_C - 1  
'Boucle d'attribution des éléments à la liste
      CO_Liste.List(V_I) = V_items(V_I)
   Next V_I
   CO_Liste.Text = "Vos choix"   
'Attribution du texte à la liste
End Sub

  1. Poursuivez en créant la nouvelle procédure ci-dessous qui sert à classer les éléments en ordre alphabétique. La technique utilisée s'appelle Tri à bulle. Ce n'est pas nécessairement la plus efficace, mais le nombre d'éléments étant limité, elle convient parfaitement à la situation.

Sub Tri_A_Bulles (ByVal Nb_Element As Long, Tableau() As Variant, ByVal --> Sens As Boolean)
  
' Si Sens = True, le tri est croissant
   Dim V_I As Long  
'Initialisation des variables
   Dim V_J As Long
   Dim V_Ligne_Tampon As Variant   
'variable intermédiaire utilisée pour la -->
   permutation de ligne

   For V_I = 1 To Nb_Element + 1
      For V_J = 0 To Nb_Element - V_I
         If (Tableau(V_J) > Tableau(V_J + 1) And Sens) Or (Tableau(V_J) <
-->
Tableau(V_J + 1) And Not Sens) Then  
'Comparaison des données
            V_Ligne_Tampon = Tableau(V_J)  
'Donnée placée en réserve
            Tableau(V_J) = Tableau(V_J + 1)  
'Échange de valeur des variables
            Tableau(V_J + 1) = V_Ligne_Tampon  
'Retour de la donnée en réserve
         End If
      Next V_J
   Next V_I
End Sub

  1. Ajoutez enfin le code suivant dans la liste CO_Liste.

Private Sub Co_Liste_Click()
  
'Affichage de l'item sélectionné
   MsgBox CO_Liste.List(CO_Liste.ListIndex)
End Sub

  1. Enregistrez votre programme et testez-le. Les options de la liste sont ajoutées dynamiquement, en ordre alphabétique croissant et le contenu de l'item sélectionné est affiché lors de la sélection.

Application:

  • Créez une nouvelle liste contenant 7 noms de personnes placés en désordre. Faites afficher cette liste en ordre décroissant.  Enregistrez votre nouvelle version sous le nom  Ex_15bxx.vbp.

 

Création d'aide
 
- À propos
- Astuce du jour
 
Cryptage
 
- Mot de passe
- Cryptage de fichier
 
Base de données
 
- Bibliothèque
 
Winsock
 
- Serveur de chat
- Client de chat 1
- Client de chat 2
 
Jeu d'arcade
 
- Interface
- Programmation 1
- Programmation 2
- Programmation 3
- Programmation 4
 
Navigateur WEB
 
- Interface 1
- Interface 2
- Interface 3
- Interface 4
- Programmation 1
- Programmation 2
- Programmation 3
- Programmation 4
© Copyright 2002 - Design : Webmasters-fr.net