OVH Cloud OVH Cloud

Création dynamique de Contrôles utilisateur

2 réponses
Avatar
mathos69
Bonjour,

Mon projet VB contient 30 contrôles utilisateurs différents dont :
- Actualites.ctl
- Applications.ctl
- Formations.ctl

Au chargement de la feuille principale du projet, VB va rechercher
dans un fichier INI le nom du controle à afficher. Je me retrouve
donc, par exemple, avec une variable : CtrlToLoad = "Applications".
Mais à partir de là, comment expliquer à VB qu'il doit charger le
contrôle Application ?

J'ai bien essayé quelque chose du type :

Dim Ctrl as New CtrlToLoad
Set Ctrl = CtrlToLoad

Mais, fort logiquement, cela ne fonctionne pas du tout.

2 réponses

Avatar
François Picalausa
Hello!

Il serait possible de précharger tous les contrôles sur la form.
En même temps que de les ajouter sur la feuille, tu pourrais les ajouter
dans une collection qui les référenceraient?

Une autre possibilité serait de stoquer tes contrôles dans un projet
contrôle Activex (.ocx) et d'utiliser la méthode décrite dans
http://support.microsoft.com/default.aspx?scid=kb;en-us;190670

Celà donnerait:
Licenses.Add "MyCtlsLib.Applications"
si le nom du projet est MyCtlsLib et le nom du usercontrol est Applications

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"Courgette" a écrit dans le message de
news:
Bonjour,

Mon projet VB contient 30 contrôles utilisateurs différents dont :
- Actualites.ctl
- Applications.ctl
- Formations.ctl

Au chargement de la feuille principale du projet, VB va rechercher
dans un fichier INI le nom du controle à afficher. Je me retrouve
donc, par exemple, avec une variable : CtrlToLoad = "Applications".
Mais à partir de là, comment expliquer à VB qu'il doit charger le
contrôle Application ?

J'ai bien essayé quelque chose du type :

Dim Ctrl as New CtrlToLoad
Set Ctrl = CtrlToLoad

Mais, fort logiquement, cela ne fonctionne pas du tout.


Avatar
mathos69
"François Picalausa" wrote in message news:...
Hello!

Il serait possible de précharger tous les contrôles sur la form.
En même temps que de les ajouter sur la feuille, tu pourrais les ajouter
dans une collection qui les référenceraient?




C'est plus ou moins ce que je fais aujourd'hui. Mais comme vous devez
vous en douter, pré charger tous les contrôles alourdi
considérablement le programme. La solution que je recherche
apporterait une plus grande modularité et une plus grande légèreté.


Une autre possibilité serait de stoquer tes contrôles dans un projet
contrôle Activex (.ocx) et d'utiliser la méthode décrite dans
http://support.microsoft.com/default.aspx?scid=kb;en-us;190670

Celà donnerait:
Licenses.Add "MyCtlsLib.Applications"
si le nom du projet est MyCtlsLib et le nom du usercontrol est Applications




Parfait, c'est exactement ce que je cherche sauf que le cahier des
charges m'interdit l'utilisation d'ActiveX. Je n'ai pas bien compris
pourquoi d'ailleurs... Le fait ai que ce qu'il me faudrait ressemble
plus à

Licences.Add "MonAppli.Applications"

Est-ce vraiment impossible ?

Merci pour votre précédente réponse.