Menu VB Net Est-ce Mieux ?

CoDubai Messages postés 81 Date d'inscription vendredi 19 septembre 2014 Statut Membre Dernière intervention 15 octobre 2014 - 5 oct. 2014 à 03:04
CoDubai Messages postés 81 Date d'inscription vendredi 19 septembre 2014 Statut Membre Dernière intervention 15 octobre 2014 - 6 oct. 2014 à 16:30
Bonjour,
Suite Menu dynamiques Jordane45 VB.NET
J'accroche Je peux.

Public Class Menu

    ''' <summary>
    ''' Numero de l'item selectionne
    ''' </summary>
    Friend IndexSelected As Short

    ''' <summary>
    ''' Sous-Menu Principal
    ''' </summary>
    ''' <remarks>Friend c'est pour laisser la porte ouverte au developpement de menus paraleles.</remarks>
    Friend MainMenuItem As ToolStripMenuItem

    ''' <summary>
    ''' Le choix a change dans le menu
    ''' L'index a ete mis a jour
    ''' </summary>
     Event IndexChanged()

    ''' <summary>
    ''' Prepare les mots de la liste. 
    ''' </summary>
    ''' <param name="ItemList"></param>
    ''' <remarks>On sacrifie un peu de puissance de calcul a l'interface Homme/Machine</remarks>
    Private Sub LoadString(ByVal ItemList As String)
        Dim LTab() As String = ItemList.Split(",")
        For i As Short = 0 To LTab.Length - 1
            ManageMenu.MenuItemList.Add(LTab(i))
        Next
    End Sub

    ''' <summary>
    ''' Ajoute une instance de gestion des evenements
    ''' </summary>
    ''' <remarks>dans l'index des programme de menu</remarks>
    Private WithEvents ManageMenu As Menu_Event_Manager

    ''' <summary>
    ''' Mise a jour du parametre d'index du choix dans le menu
    ''' </summary>
    ''' <param name="ItemSelected"></param>
    Private Sub MenuClicked(ByVal ItemSelected As String) Handles ManageMenu.MenuClicked
        For IndexSelectedTemp As Short = 0 To ManageMenu.MenuItemList.Count - 1
            If ItemSelected = ManageMenu.MenuItemList.Item(IndexSelectedTemp) Then
                IndexSelected = IndexSelectedTemp
                RaiseEvent IndexChanged()
                Exit For
            End If
        Next
    End Sub

    ''' <summary>
    ''' Gestion des evenements des items
    ''' </summary>
    ''' <remarks></remarks>
    Class Menu_Event_Manager

        ''' <summary>
        ''' Avise le client que le choix est fait
        ''' </summary>
        ''' <param name="Index"></param>
        ''' <remarks>selectionned item's name</remarks>
        Event MenuClicked(ByVal Index As String)

        ''' <summary>
        ''' Le Choix est fait. Il faut aviser.
        ''' </summary>
        ''' <param name="Sender"></param>
        ''' <param name="e"></param>
        ''' <remarks>Les objets mysterieux qui participent aux evenements.
        ''' Si Microsoft avait donne l'exemple ... (Intellisense)
        ''' On aurait pas besoin de deviner.
        ''' Et je me serait pas plie si facilement
        ''' aux exigences de Jordane45</remarks>
        Private Sub ItemClick(ByVal Sender As Object, ByVal e As System.EventArgs)
            RaiseEvent MenuClicked(Sender.Text)
        End Sub

        ''' <summary>
        ''' Liste des mots utilises dans le menu
        ''' </summary>
        Friend MenuItemList As List(Of String)

        ''' <summary>
        ''' Determine la poignee (Pointeur) du processus qui doit recevoir les
        ''' parametres mysterieux Sender et argument.
        ''' </summary>
        ''' <remarks>On dirait que c'est fait expres pour la gestion dynamique des menus</remarks>
        Private ItemHandler As EventHandler = AddressOf ItemClick

        ''' <summary>
        ''' Initialise le menu a partir de la liste
        ''' </summary>
        ''' <param name="Titre"></param>
        ''' <param name="MenuTitre"></param>
        ''' <remarks></remarks>
        Friend Sub SetMenu(ByVal Titre As String, ByVal MenuTitre As ToolStripMenuItem)
            For i = 0 To MenuItemList.Count - 1
                Dim S As String = MenuItemList.Item(i)
                MenuTitre.DropDownItems.Add(S, Nothing, ItemHandler)
            Next
        End Sub

        ''' <summary>
        ''' Reserve un pointeur de liste dans le tas.
        ''' </summary>
        ''' <remarks></remarks>
        Sub New()
            MenuItemList = New List(Of String)
        End Sub
    End Class

    ''' <summary>
    ''' Prepare la memoire
    ''' </summary>
    ''' <param name="Titre"></param>
    ''' <param name="StringItemList"></param>
    ''' <remarks>Informe le tas du minimum de nos besoins </remarks>
    Sub New(ByVal Titre As String, ByVal StringItemList As String)
        'Reserve la memoire pour les variables
        ManageMenu = New Menu_Event_Manager
        MainMenuItem = New ToolStripMenuItem(Titre)
        ManageMenu.MenuItemList = New List(Of String)
        'Installe la liste
        LoadString(StringItemList)
        'Initialise le sous-menu qui sert de menu principal pour la liste.
        ManageMenu.SetMenu(Titre, MainMenuItem)
    End Sub
End Class


C'est plus lisible dans l'Edi.
J'attends toujours ma mention "Très Bien".

4 réponses

CoDubai Messages postés 81 Date d'inscription vendredi 19 septembre 2014 Statut Membre Dernière intervention 15 octobre 2014
5 oct. 2014 à 05:58
Les erreurs se manifesteront a l'usage.

Ps Vous remarquerez que l'azerty n'est pas obligatoire dans cette formule.
Quel exploit.
0
CoDubai Messages postés 81 Date d'inscription vendredi 19 septembre 2014 Statut Membre Dernière intervention 15 octobre 2014
5 oct. 2014 à 17:28
Pas de réponse = Bonne réponse.

Très bien, Je continue.

On voit que ca marche avec
nothing


J'ai tous les éléments pour faire un beau lexique 3 qui suffirait pour changer des étiquettes.
Il reste qu'il est toujours bon de voir plus loin.
Ne dit-on pas que la structure de données détermine l'avenir du programme ?

  
''' <summary>
''' Essai pour organiser les Données nécessaires pour les essais du Lexique.
''' Transitions sémantiques.
''' </summary>
''' <remarks>Je vais essayer de les coller tous dans un treenode.. Dans le Tas.
''' Un peu de récursivité et ... Hop tout dans un fichier du genre xml
''' Dans le Dos si il y en a trop.
''' C'est juste pour voir quelques interactions digitales
''' limitées, cela va sans dire. </remarks>
Module DataLang

    ''' <summary>
    ''' Base de données Linguistiques en mémoire rapide.
    ''' </summary>
    ''' <remarks>La structure de la base sera définie dans ce programme
    ''' (Ca prendra du temps, et faut pas se gourer au début.)</remarks>
    Friend LinguiBase As TreeNode

    ''' <summary>
    ''' Les règles au moins communes a deux langues.
    ''' </summary>
    ''' <remarks></remarks>
    Friend Regles_Generales As TreeNode

    ''' <summary>
    ''' L'Ami Panini réuni les règles générales de base de la grammaire.
    ''' </summary>
    ''' <remarks></remarks>
    Friend Panini As TreeNode
    Friend Grammaire_Universelle As TreeNode
    Friend Phonetique As TreeNode

    ''' <summary>
    ''' Ensemble de données communes a plusieurs Tribus.
    ''' </summary>
    ''' <remarks>Bon par exemple: a refaire n'est pas bon pour tous.
    ''' </remarks> Elle est Bonne est une expression Varoise intraduisible.
    Friend Culture As TreeNode

    ''' <summary>
    ''' Culture locale
    ''' </summary>
    ''' <remarks></remarks>
    Friend Tribu As TreeNode

    ''' <summary>
    ''' Les exceptions du langage.
    ''' </summary>
    ''' <remarks>Verbes irréguliers Anglais, Expressions idiomatiques 
    ''' Et j'en passe.</remarks>
    Friend Regles_Propres As TreeNode

    ''' <summary>
    ''' C'est le morceau principal du lexique.
    ''' On va le trouver partout en sous titre.
    ''' Transition (Tribu.Vocabulaire, Signifie, Note du traducteur)
    ''' </summary>
    ''' <remarks>Je l'inscrit dans un contexte évolutif.
    ''' Si je parviens a trouver un moyen de lier les mots au moins deux par deux,
    ''' Je pourrais déjà commencer le lexique. </remarks>
    Friend Vocabulaire As TreeNode

    Sub New()

        LinguiBase = New TreeNode("Base Linguistique")

        Regles_Generales = LinguiBase.Nodes.Add("Regles_Generales")
        Panini = Regles_Generales.Nodes.Add("Panini")

        Culture = LinguiBase.Nodes.Add("Culture")
        Tribu = Culture.Nodes.Add("Tribu")
        Regles_Propres = Culture.Nodes.Add("Tribu")

        REM Je pause a la troisième couche pour affiner les deux premières
        'Des deux, Chacun sait qui a fait la bêtise flagrante,
        'Quand on est trois c'est plus dur.
        'On voit déjà que ca ressemble au DOS.
        'Les deux premiers niveaux sont uniques
        'On commence a retrouver des structures identiques au troisième.
        'Ce qui est encourageant: ca devient concret.
    End Sub

End Module


Quelle rubrique, ou site me conseillez-vous dans la matière ci-dessus
0
CoDubai Messages postés 81 Date d'inscription vendredi 19 septembre 2014 Statut Membre Dernière intervention 15 octobre 2014
Modifié par CoDubai le 6/10/2014 à 05:03
Dans quel contexte ?

Si le contexte est limité aux domaines d'application pour la table, on trouve des fonctions dans des contextes très nombreux. Certainement plus que 127 quand il s'agit de programmes. On a les contextes d'utilisation comme la cuisine et la comptabilité, et les contextes de développement. ce qui m'amène a penser
Evocation Choix détermination
Il vaut mieux choisir des mots sans accents.
Evocation Choix Validation.
Soit ECV dans un contexte Anglo-saxon.
Sur 127, Combien pour les applications, ce qui reste pour des catégories a développer. 63 chacun ?
0
CoDubai Messages postés 81 Date d'inscription vendredi 19 septembre 2014 Statut Membre Dernière intervention 15 octobre 2014
6 oct. 2014 à 16:30
J'ai trouvé mieux pour l'étude. C'est dans Studio.

<?xml version="1.0" encoding="utf-8" ?>

<LinguiBase>
  <Regles_Generales>
   </Regles_Generales> 
<Panini>
  <Grammaire_Universelle>
  </Grammaire_Universelle>
   <Phonetique>
  </Phonetique>
</Panini>
 <Culture>
  </Culture>
  <Tribu>
    <Regles_Propres>
 </Regles_Propres>
 </Tribu>
</LinguiBase> 


Ps C'est dommage que l'option code de l'éditeur CS fasse pas l'arbre.
C'est fait pour la programmation appliquée.

LinguiBase
1 Regles_Generales
2 Panini
2.1 Grammaire_Universelle
2.2 Phonetique
3 Culture
3.1 Tribu


Voila. Il suffit de voir ca pour comprendre que le mieux c'est d'affecter des numéros.
avec un indice pour les verbes, les adjectifs, et éventuellement la tribu.
0
Rejoignez-nous