begin process at 2008 05 16 08:52:51
1 173 235 membres
76 nouveaux aujourd'hui
13 970 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CLASS POUR GENERER DYNAMIQUEMENT DES CONTROLES DANS UN CONTENEUR, POUR CREER DES FORMULAIRES DYNAMIQUES


Information sur la source

Catégorie :Control Niveau : Débutant Date de création : 10/04/2005 Date de mise à jour : 10/04/2005 02:19:03 Vu / téléchargé: 6 054 / 970

Note :
9,2 / 10 - par 5 personnes
9,20 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note


Description

Quelques sources juste avant celle-ci, se trouve une source nommée GENERATEUR DE FORMULAIRE.
Ce qu'elle contient n'étant pas du tout ce qu'elle annonce, je me permets (sans aucune dénigrance de l'auteur de la source que j'ai citée, bien entendu) de poser cette class que j'ai développé il y a longtemps, et que j'ai utilisé dans diverses applications professionnelles.

La ClassDerouleurControles sert réellement à générer des formulaires dynamiques, elle est clé en main.

Vous pouvez regarder la capture ci-jointe pour avoir une illustration de son fonctionnement.

La Class possède ces méthodes :

- AjouterLigne
>pour ajouter une ligne de plus, selon le schéma donné initialement

- EffacerLigne (index)
>pour enlever l'une des lignes présentes, notament la numéro Index

- NombreLignes
> renvoie le nombre de ligne en cours

- ToutEffacer
> efface toutes les lignes ajoutées

- DernierControleAjoute (IndexCollection)
> retourne le dernier controle ajouté (donc de la dernière ligne), et plus particulierement le controle Numero IndexCollection. Par exemple, si vous avez initialisé la class avec TextBox, Button, CheckBox, alors pour avoir le dernier TextBox, IndexCollection sera 0, 1 pour le Button et 2 pour la CheckBox. (regardez l'exemple dans le ZIP)

- Init(ByVal LaisserMarge As Boolean, ByVal LimiteContainer As Long, ByVal EspacementLigne As Long, ByVal AscenseurVertical As VScrollBar, ParamArray ControlesIndexes() As Variant)
> obligatoire pour initialiser le conteneur de champ dynamique, donc la Class.
> LaisserMarge permet lors d'un ajout, lorsque le nombre de champ nécessite un ascenseur, de laisser ou non une petite marge d'espace libre en dessous de la dernière ligne
> LimiteContainer est la hauteur du conteneur. Si la dernière ligne ajoutée dépasse cette limite, la class renseignera l'ascenseur pour le défilement.
> EspacementLigne est la distance à placer entre chaque ligne.
> AscenseurVertical est le Vscrollbar associé au conteneur, pour permettre le défilement.
> Ensuite, vous pouvez inscrire le nom des collections de contrôles créé, un par un.

Regardez les 2 exemples à disposition dans le ZIP pour comprendre le fonctionnement.

Ce qu'il vous faut pour créer un formulaire dynamique (vous le verrez dans les exemples de toute facon), c'est :
- la Class
- un conteneur quelconque (la form par exemple)
- poser dans ce conteneur les controles qui formeront une ligne du formulaire, et mettre l'index de chacun d'eux à 0. Ils seront la ligne "modèle".
- Mettre un ascenseur vertical, au cas où le nombre ligne ajouté dépasse le conteneur.
- initialiser la Class

Conclusion

Illustration, exemple réel.

Cette Class m'a servi notament dans un projet de dédoublonnage de contacts dans une immense base de donnée texte :
le programme chargeait les entrées, opérait le dédoublonnage en regroupant les contacts qui lui semblait similaire (l'algorithme utilisé est vraiment très bluffant... il renvoie un pourcentage de correspondance entre les 2 chaines) puis affichait ces entrées quasi identique justement grâce à cette Class. Compte tenu du fait que le nombre de doublons pour un nom pouvait être de 2 à l'infini, elle était très efficace, et contenait des champs texte pour affiché les données des doublons par ligne, une case à cocher pour que l'utilisateur coche les lignes qu'il voulait conserver (les autres était effacée lorsqu'il passait aux groupes de doublons suivant).

Par exemple, on avait à l'écran grâce à cette Class :

Dupont Martin     [X]
Dupond Martin    [ ]
Dupon Martin      [ ]

Là l'utilisateur fait suivant, ca supprime Dupond et Dupon car non coché, puis on passait à l'autre groupe de doublon :

Poulet Yves    [X]
Poules Yves    [ ]
Poulle Yves     [X]
Poulel Yves     [ ]
Poulai Yves     [ ]


Merci de laisser vos commentaires après l'avoir essayée, et compris son fonctionnement (quoi de plus normal)   ;)

@+
Celiphane
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

10 avril 2005 02:19:03 :
  • signaler à un administrateur
    Commentaire de max12 le 10/04/2005 03:28:17 administrateur CS

    "Quelques sources juste avant celle-ci, se trouve une source nommée GENERATEUR DE FORMULAIRE. Ce qu'elle contient n'étant pas du tout ce qu'elle annonce"

    Tu pourrais me cîter l'adresse que je regardes ça ?
    PS : Si vous en connaissez d'autres mauvaises, dîtes-le moi en PV SVP.

    A+

  • signaler à un administrateur
    Commentaire de celiphane le 10/04/2005 17:14:05

    salut max12,

    je n'ai pas la prétention de faire de la délation, comme quoi la source que j'ai cité est une hérésie, d'ailleurs, je peux changer mon introduction si tu le souhaites.

    La source en question est ici : http://www.vbfrance.com/code.aspx?id=30625

    En fait, elle est nommée GENERATEUR DE FORMULAIRES, alors qu'elle aurait plutôt dûe s'appeler OUVRIR PLUSIEURS FOIS LA MEME FEUILLE, car elle montre comment instancier et charger une form.

    En l'ouvrant, je m'attendais à voir un générateur de formulaire avec des champs à remplir etc... mais comme ce n'était pas le cas, ça m'a fait penser à poser une source qui justement le fait, c'est à dire celle-ci ;)

    @+
    Celiphane

  • signaler à un administrateur
    Commentaire de max12 le 10/04/2005 19:00:27 administrateur CS

    celiphane> C'est correct, je voulais seulement voir car je trouves que malheureusement ça se laisse de plus en plus aller dans les présentations des sources (Mauvais titre, aucune description, etc ...). Et j'avoue que je l'ai déjà fait aussi avant (Je corrige parfois, j'en ai plusieurs). C'est aussi important que la source elle-même car si on veut la trouver dans le moteur de recherche il est évident qu'il faut une bonne présentation. Et ça ralenti considérablement la recherche quand l'on ouvre le ZIP pour savoir ce qu'il y a vraiment dans une source. C'est pour cette raison que je demandes ça, c'est important que le site soit propre pour qu'il garde sa pertinence, pas dans le but d'énerver les membres où de se permettre de faire du tri de ce qu'on aime ou ce qu'on aime pas.

    Je donnes ces précisions pour d'éventuelle lecture de la part de plusieurs membres :)

    Lorsque vous trouvez une sources comme j'ai décris plus haut, ne vous gênez pas, je ne la supprimerai pas nécéssairement, je demanderai à l'auteur de spécifier un peu plus tous simplement.

    A+

    PS : Merci pour ta contribution Celiphane ;)

  • signaler à un administrateur
    Commentaire de FoxTrot le 11/04/2005 09:17:51

    Très efficace (comme dans beaucoup de tes sources) ! 10/10

    Cependant, j'ai vu que tu parlais dans ton explication finale d'un code de comparaison de 2 chaines, qui donnait un pourcentage...
    Ca serait une bonne source à poster sur VBFRance...

    Merci Celiphane.

  • signaler à un administrateur
    Commentaire de celiphane le 11/04/2005 22:32:34

    FoxTrot>
    Je vais d'ici peu poser une source la dessus alors...
    Je te tiens au courant ici même.

    @+
    Celiphane

  • signaler à un administrateur
    Commentaire de celiphane le 12/04/2005 00:25:57

    Voilà, rendez-vous ici pour la fonction de similitude entre 2 chaines :

    http://www.vbfrance.com/code.aspx?ID=30685

    De rien !

    @+
    Celiphane

  • signaler à un administrateur
    Commentaire de FoxTrot le 12/04/2005 11:45:48

    Merci Céliphane. Cette nouvelle source va simplifier la vie de nombreux programmeurs. :-)

  • signaler à un administrateur
    Commentaire de ericsim le 20/04/2005 14:54:49

    Simplement super...bravo

  • signaler à un administrateur
    Commentaire de gilardh le 28/06/2005 18:16:28

    Bravo, j'ai mis 9/10.
    J'aurais mis 10/10 si la gestion de la touche TAB était poussé à son maximum.
    Je m'explique :
    Arrivé en bas de la fenetre, en cliquant sur la touche TAB le focus s'en va au lieu de passer à la ligne suivante cachée si existante (Il faut donc jouer avec le scroll).
    Gilardh

Ajouter un commentaire

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS