Gestion dynamique des items - bien plus interessant que les tableaux dynamiques

Description

Tout le monde a recours dans la programmation à des tableaux dynamiques, besoin de validation de valeurs/paramètres et pourquoi pas faire du rangement dans ses variables.

Cette DLL que je viens de coder pour mes besoins personnels je me demande bien comment je pourrais encore programmer sans elle, tellement elle a des possibilités infinies et comme toujours je l'ai conçu en prenant compte de beaucoup de considérations dont les exigences sont la simplicité, l'efficacité et l'interactivité.

Le principe est simple.
Les Items sont stockés en 4 variables (Catégorie, Nom, Type, Valeur)
Ce qui signifie que les Items peuvent avoir le même nom mais dans 2 catégories différentes. Le système contrôlera que la valeur envoyé est conforme au Type (Texte, Numérique, Date/Heure, Booléen)
Pour toute opération sur un item il faut associer le couple (Nom, Catégorie).
Toute affectation sur une catégorie existante entraine la modification, meme si AddItem est invoqué.

Il est possibles de supprimer un item comme toute sa catégorie, il est possible de réinitialiser un item ou toute sa catégorie.

La méthode ItemsValues s'applique à une catégorie et permet de recevoir la liste des Items initialisés, on peut au besoin recevoir les informations sur les noms, les types et les valeurs.

on peut bien évidemment lire simplement un item, savoir s'il a été initialisé.

La méthode ValidateItems permet de faire valider une liste de variables par l'utilisateur. On peut décider si l'utilisateur peut valider la liste s'il existe des items vides ou pas.

NB : Pour mon développement personnel, l'utilisateur choisit les couleurs de ses interfaces, et ne travaillant qu'avec des composants personnalisés, j'adapte mes objets à mes besoins, ce qui signifie que le paramètre BackColor ne sera probablement pas utile pour vous.

Je m'arrêtes là, je vous laisse le soin de parcourir et de me faire vos commentaires surtout sur les limites de cet objet.

Il pourrait avoir quelques manquements dans le code, je sais avoir la mauvaise habitude de ne pas revenir sur mes sources mais en général je m'en rend compte en utilisant des petites omissions. Mais je serai très ravis d'avoir le retour de vos tests afin de pouvoir l'optimiser.

Source / Exemple :


'Je vais juste lister les propriétés et méthodes et parleront d'elles même.

'Types
'-----
Public Enum EnumItemDataType
    meTexte = 1
    meNumeric = 2
    meDateTime = 3
    meBoolean = 4
    meUnknown = -1
End Enum

'Propriétés
'-----------
Public Property Get DefaultItemType() As EnumItemDataType

Public Property Let DefaultItemType(ByVal peDefaultItemType As EnumItemDataType)

Public Property Get Item(ByVal psItemName As String, Optional ByVal psCategory As String) As Variant

Public Property Let Item(ByVal psItemName As String, Optional ByVal psCategory As String, ByVal pvItemValue As Variant)

Public Property Get ItemsCount(Optional ByVal psCategory As String) As Long

Public Property Get ItemIndex(ByVal psItemName As String, Optional ByVal psCategory As String) As Long

'Méthodes
'--------
Public Sub AddItem(ByVal psItemName As String, Optional ByVal psCategory As String, Optional ByVal pvItemValue As Variant, Optional peItemType As EnumItemDataType = meTexte)

Public Function IsItemInitialized(ByVal psItemName As String, Optional ByVal psCategory As String) As Boolean

Public Sub ValidateItems(Optional ByVal psCategory As String, Optional ByVal plCaptionWidth As Long = m_def_CaptionWidth, Optional ByVal pnBackColor As OLE_COLOR = &H8000000F, Optional ByVal pbItemNullAllow As Boolean = True)

Public Property Get ItemsValues(Optional ByVal psCategory As String, Optional ByRef paItemsNames As Variant, Optional ByRef paItemsTypes As Variant) As Variant

Public Sub ClearValues(Optional ByVal psCategory As String, Optional ByVal psItemName As String)

Public Sub RemoveItems(Optional ByVal psCategory As String, Optional ByVal psItemName As String)

Conclusion :


J'ai inclut la DLL cette fois pour ceux qui n'ont pas VB.

Je pense devoir beaucoup à ce site pour avoir aider de passer de Access à VB, alors quand je suis trop absent je pense à ajouter des sources utiles venant de mes plus recents travaux, mais pas tous, c sûr, lol.

Codes Sources

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.