AJOUTER UN CONTROL DYNAMIQUEMENT (AT RUNTIME)

cs_Stephane Messages postés 550 Date d'inscription vendredi 5 janvier 2001 Statut Membre Dernière intervention 23 septembre 2006 - 5 janv. 2002 à 22:17
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011 - 5 sept. 2008 à 00:24
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/2329-ajouter-un-control-dynamiquement-at-runtime

cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
5 sept. 2008 à 00:24
J'ai trouvé une solution provisoir, ou pas...

Je repere le label cliqué en faisan un calcul de sa position par rapport à la souris, en attendant mieux ça marche très bien !

Mais je reste ouverts a vos suggestions, Merci
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
4 sept. 2008 à 21:58
Bonjour, j'ai une petite question :

Je suis en train de créer un contrôle de liste et pour ce faire je créer dynamiquement des label, jusqu'a maintenant j'incremente le nom serveur du control mais cela ne colle pas aver l'application que je veut en faire car il me sera difficile de créer une procedure évenementiel de clique pour chaque label en mode d'execution.

Je peut surement palier à ce problème en créer des label avec non unique et indexation, ex: au lieu de Label1, Label2 j'obtient Label(1), Label(2), etc...

Je ne trouve pas la commande pour créer un index à un contrôle créé dynamiquement et je ne peut lui assigné d'index une fois crée.

Quelq'un aurait une solution ?

Merci d'avance.
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
21 févr. 2006 à 13:02
lol ^^ content si je peux aider
cs_yannickt Messages postés 64 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 22 novembre 2011
21 févr. 2006 à 04:15
OMG! Les mots me manquent pour exprimer ma joie! tellement de possibilités!!!! MERCI INFINIEMENT MADM@TT!!!! Depuis le temps que je cherchais la solution! T'es un héros! loll! Excusez cet excès... Yannick
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
21 févr. 2006 à 00:22
Wouhou !
J'ai trouvé ! En tout cas ça marche chez moi. En pleine execution j'ai lancé la fenetre qui t'affiche toutes les variables de la form, et j'ai explorer toutes les propriétés de mon controle, et j'ai vu que toutes les propriétés persos étaient dans la propriété object. Donc il faut faire :
ObjOCX.Object.Propriete

pour info si ça vous interesse j'ai fait un tutoriel sur tout le late binding, parce que les infos sont trop éparpillées sur le net à mon gout :p
http://www.vbfrance.com/tutoriaux/AJOUTER-CONTROLE-OCX-DYNAMIQUEMENT-PLEINE-EXECUTION-LATE-BINDING_361.aspx

voilà !
cs_yannickt Messages postés 64 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 22 novembre 2011
20 févr. 2006 à 20:51
Trouver une solution à ce problème nous donnerait une possibilité infinie d'expension de notre programme, si quequ'un trouve comment, je serai dans l'impossibilité de ne pas lui adresser ma vive gratitude!
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
20 févr. 2006 à 17:41
YannickT > J'ai la meme question que toi, mais pour les propriétés.
J'ai importé mes ocx persos comme expliqué dans la source, mais impossible d'acceder aux propriétés propres à mon controle, je n'ai que les propriétés par défaut de vb : ça me met une erreur à l'execution alors que je sais que mon controle supporte la propriété.
Vous voyez la solution ?
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
11 févr. 2006 à 15:15
Wahouuuuu !!!!!
ahhh c'est trop trop bien je cherche ça depuis ce matin... WOUHOU !!!

Petite précision pour ceux qui auront quelques problemes comme moi :
Public WithEvents ctlobjOcx As VBControlExtender
est à mettre dans la form ou doit apparaitre le controle
et il faut faire : nomForm.Controls.Add si vous placez ça ailleurs que dans la form

Merci infiniment !!
cs_yannickt Messages postés 64 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 22 novembre 2011
4 mars 2005 à 19:39
Hummm, j'suis pas certain, mais je vous donne le bénéfice du doute, je vais l'essayer, je vous reviens là-dessus, merci de votre réponse, Yannick...
borntoclimb Messages postés 98 Date d'inscription vendredi 4 janvier 2002 Statut Membre Dernière intervention 7 mars 2006 4
4 mars 2005 à 09:33
Je ne comprend pas bien ta question... Pour changer les propriétés et lancer les methodes tu fais:

ctlDynamic.property = value
call ctlDynamic .method()

Ca aide?

Borntoclimb
cs_yannickt Messages postés 64 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 22 novembre 2011
3 mars 2005 à 20:07
comment on fait pour exécuter les méthodes et lire/écrire les propriétés? (Comme par exemple... backcolor d'un control, autrement dit, comment faire pour aller plus loin que les événements que nous propose VbControlExtender?) Si vous réussissez à trouver ça, franchement, vous êtes puissant, lol!
Merci, Yannick...
cs_yannickt Messages postés 64 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 22 novembre 2011
3 mars 2005 à 20:06
comment on fait pour exécuter les méthodes et lire/écrire les propriétés? (Comme par exemple... backcolor d'un control, autrement dit, comment faire pour aller plus loin que les événements que nous propose VbControlExtender?)
shadowmoy Messages postés 340 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 25 août 2007
30 janv. 2004 à 20:26
dommage que ca ne ca ne gere pas les tableaux indexé...
shadowmoy Messages postés 340 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 25 août 2007
30 janv. 2004 à 19:57
dommage que ca ne ca ne gere pas les tableaux indexé...
borntoclimb Messages postés 98 Date d'inscription vendredi 4 janvier 2002 Statut Membre Dernière intervention 7 mars 2006 4
10 nov. 2003 à 14:16
Il faut ajouter le premier manuellement sur la form et ajouter les suivants dynamiquement. en gros, il faut que ton tableau de control lié a un evenement soit initialisé, c'est la seule methode possible (que je conaisse).
Il y a d'autre source que la mienne sur le sujet, tu peux y jeter un coup d'oeil.
trifonnerie Messages postés 6 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 14 novembre 2003
10 nov. 2003 à 13:06
C'est bien joli tout ca,mais comment faire pour un control indéxé
exemple un Label1(0), Label1(1) et que l'on veut qu'il réagisse au clic de la souris
Ludolpif Messages postés 138 Date d'inscription samedi 11 mai 2002 Statut Membre Dernière intervention 17 mai 2007
26 janv. 2003 à 11:47
Moi aussi, je V tester, je te remercie !
borntoclimb Messages postés 98 Date d'inscription vendredi 4 janvier 2002 Statut Membre Dernière intervention 7 mars 2006 4
1 avril 2002 à 14:42
Bien heureux que ça vous plaise jusqu'à l'incontinence ;)

borntoclimb
dreadlock Messages postés 11 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 19 mai 2010
28 févr. 2002 à 15:04
aaaaaaaaaaaaah c trop beau, j'vous jure des fois je m'en pisserai dessus de joie
cs_Stephane Messages postés 550 Date d'inscription vendredi 5 janvier 2001 Statut Membre Dernière intervention 23 septembre 2006
5 janv. 2002 à 22:17
a ouuuuuui merci je ne sais pas si ca marche j'ai pa encore essay (je vais tout de suite) mais c'est super tout ce que je voulais
merciiiiiiiiiii
Rejoignez-nous