Exercice 3 - La feuille frmMakefile

Nous reviendrons ultérieurement à la construction de la feuille frmChild,
et nous allons nous intéresser à la réalisation de la feuille frmMakeFile

./images/mkfich.gif Voici la feuille à réaliser, elle comprend :
4 "Frame"
2"TextBox"
2 "Label"
1 ComboBox
4 "SSCommand" (Boutons de commande)
A titre indicatif, je vous donne les propriétés principales de cette feuille qui sont :
Name : frmMakeFile
Height : 4380
Width : 5580
Label1 sera renommé : Etiquette1 (Propriété Name)
Label2 sera renommé : Etiquette2 (idem )

     Télécharger les images : Téléchargement


Nous allons renommer les différents objets, tout au moins ceux qui ont un rôle déterminant dans les procédures :
Voici le propriétés à modifier :
Texte1
Propriété Name : Texte1
ComboBox
Propriété Name : ListeModif1
Texte2
Propriété Name : Texte2
Etiquette1
Propriété Name : Etiquette1
Propriété Caption : .VSW
Etiquette2
Propriété Name : Etiquette2

Codifions la procédure Form_Load :

 
Sélectionnez
Private Sub Form_Load( )
    Etiquette2.Caption = App.Path + "\DATAS"
    For X% = 1 To 10
    If BaseDonnees$(X%) <> "" Then
        ListeModif1.AddItem BaseDonnees$(X%)
    End If
    Next X%
    ListeModif1.Text = BaseDonnees$(1)
    Texte1.Text = BaseDonnees$(1)
    Texte2.Text = InfosBDonnees$(1)
    'Centrage de la feuille
    CenterForm Me
End Sub

Créons la procédure de fermeture de la feuille

 
Sélectionnez
Private Sub Form_Unload(Cancel As Integer)
    'Stockons les modifications
    On Error Resume Next
    KNum = FreeFile
    MkDir App.Path + "\datas"    'Création du répertoire "Datas"
    Open App.Path + "\datas\fichfilm.lst" For Output As #KNum       'Création du fichier "fichfilm"
    For X% = 1 To 10
    If BaseDonnees$(X%) <> "" Then
        Write #KNum, BaseDonnees$(X%), InfosBDonnees$(X%)
       'Nous allons créer les fichiers qui nous intéressent
       Open App.Path + "\datas\" + BaseDonnees$(X%) + ".vsw" For Output As #KNum + 1
       'Terminé, nous refermons les fichiers ouverts
       Close #KNum + 1
    End If
    Next X%
    Close #KNum
End Sub

Créons la procédure FileDefinition :

 
Sélectionnez
Sub FileDefinition(Fichier$, Info$)
    'Sélection des fichiers uniquement si nouvelles définitions
    For X% = 1 To 10
    'Si fichier existe déjà, annuler
    If Trim$(Fichier$) = Trim$(BaseDonnees$(X%)) Then Exit Sub
    Next X%
    'Nouvelle définition à créer
    Texte1.Text = Fichier$
    Texte2.Text = Info$
    Command3D3_Click
End Sub

Dans la feuille frmMakefile, nous créons la procédure :

 
Sélectionnez
Sub FileDefinition (Fichier$, Info$)
    'Sélection des fichiers uniquement si nouvelles définittions
    For x% = 1 To 10
    'Si fichier existe déjà, annuler
    If Trim$(Fichier$) = Trim$(BaseDonnees$(x%)) Then Exit Sub
    Next x%
    'Nouvelle définition -> créer
    Texte1.Text = Fichier$
    Texte2.Text = Info$
    Command3D3_Click
End Sub

Nous allons modifier les propriétés du projet afin de pouvoir lancer le fichier sur lequel nous travaillons sans risque de générer des erreurs.
Cliquer dans la barre de menu sur l' étiquette "Projet", puis sur "Propriétés de Projet1...
Modifiez l' étiquette "Objet de démarrage" et modifiez la ComboBox pour faire apparaître le fichier que nous voulons lancer, en l' occurrence affichons le nom de : "frmMakefile".
Vous pouvez maintenant lancer votre feuille de travail, la feuille frmMakeFile qui va nous permettre de créer les fichiers de travail devant contenir les données à enregistrer.

Nous continuons à saisir les codes des procédures qui nous sont nécessaires.

 
Sélectionnez
Sub ListeModif1_Change ( )
     Texte1.Text = ListeModif1.Text
     Texte1.Refresh
     Texte2.Refresh
End Sub
 
Sélectionnez
Sub ListeModif1_Click ( )
    'Le compteur de ListeModif1 commence à 0, Array à 1
    Num% = ListeModif1.ListIndex + 1
    Texte1.Text = BaseDonnees$(Num%)
    Texte2.Text = InfosBDonnees$(Num%)
End Sub

Sub Texte1_Change ( )
    ListeModif1.Text = Texte1.Text
End Sub

Codifions le premier bouton

 
Sélectionnez
Private Sub SSCommand1_Click( )
    For X% = 1 To 10
    If BaseDonnees$(X%) = "" Or BaseDonnees$(X%) = Texte1.Text Then Exit For
    Next X%
    If X% = 10 And BaseDonnees$(X%) <> "" Then
        MsgBox "Vous ne pouvez pas créer plus de 10 bases de données !", 16, "Attention!"
        Exit Sub
    End If
    If BaseDonnees$(X%) <> Texte1.Text Then
        ListeModif1.AddItem Trim$(Texte1.Text)
        ListeModif1.Refresh
    End If
    BaseDonnees$(X%) = Trim$(Texte1.Text)
    InfosBDonnees$(X%) = Trim$(Texte2.Text)
End Sub

Codifions le deuxième bouton

 
Sélectionnez
Private Sub SSCommand2_Click( )
    Texte1.Text = ""
    Texte2.Text = ""
End Sub

Codifions le troisième bouton

 
Sélectionnez
Private Sub SSCommand3_Click( )
    'Création automatique de bases de données
    FileDefinition "SF", "Science Fiction"
    FileDefinition "fantasy", "Fantasy / Contes"
    FileDefinition "horror", "Horreur / Angoisse"
    FileDefinition "action", "Action / Aventure"
    FileDefinition "comedy", "Comédies / Divertissement"
    FileDefinition "music", "Musique / Musicals"
    FileDefinition "thriller", "Thriller "
    FileDefinition "love", "Love Stories / Histoires d'amour"
    FileDefinition "exotic", "Erotique & Exotique"
    FileDefinition "western", "Western / Western spaghetti"
    '
    'FileDefinition "eastern", "Eastern / Karate / Kung Fu"       'Pour éviter d' engendrer une erreur, nous                                                                                     'codifions les lignes suivantes en commentaires
    'FileDefinition "war", "Guerre"                                          
    'FileDefinition "polard", "Policiers/ Espionnage"
    'FileDefinition "trick", "Dessins animés / Animations"
    'FileDefinition "nature", "Nature / Vie des bêtes"
    'FileDefinition "sport", "Sport"
    'FileDefinition "document", "Documentaires"
    'FileDefinition "roman", "Films à base de romans"
    'FileDefinition "show", "Shows & Music / Concerts"
    'FileDefinition "tv", "Films télévision / Séries"
End Sub

Codifions le quatrième bouton

 
Sélectionnez
Private Sub SSCommand4_Click( )
    Unload frmMakefile
End Sub

Insérez l' icône que vous avez récupéré et installez le dans la propriété "Icon" de la feuille

Vous pouvez modifier à nouveau les propriétés du projet afin de démarrer avec la feuille "frmParent" ce qui nous permettra de faire un essai avec le premier bouton qui doit normalement afficher la feuille frmMakefike.

A ce stade de l' avancement des travaux, le programme est opérationnel uniquement par l' événement que provoque l' action du bouton N°1 de la feuille frmParent.

Prochain tutoriel :

le code d' action de la feuille "DelFile"