Propriétés en late binding

Résolu
Signaler
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Bonjour à tous,
voilà j'ai un bon problème, pour une question pratique j'utilise des ocx que je charge en late-binding,c'est à dire en faisant :
Set ctlobjOcx = frmMain.Controls.Add(OcxNomInterne + "." + OcxNomOcx, OcxNomOcx, Container)

Cependant pour mes controles chargés de cette façon, je n'arrive pas à acceder à leurs propriétés sauf à celles de bases pour un objet (name, height, width etc...). Bien sur je n'ai pas l'intellisense, mais meme en le tapant à la main :
Ocx.Caption="Hello"

ne marche pas, alors que l'ocx supporte bien la propriété caption :
Public Property Get Caption() As String
Caption = "Horloge"
End Property

J'obtiens l'erreur :
Object doesn't support this property or method

Merci à tous ceux qui pourront m'apporter de l'aide

Ciaò
[mailto:madmatt_12@msn.com MadMatt]
www.madmatt.fr.st

5 réponses

Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
1
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
une nuit et un aprem plus tard : la réponse

Tout simplement il faut faire :
Horloge1.object.BackColor = vbWhite
et non :
Horloge1.BackColor = vbWhite

Merci de ton attention quand meme pcpt !

Ciaò
[mailto:madmatt_12@msn.com MadMatt]
www.madmatt.fr.st
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
salut,

pour test, en faisant for each Ctrls in Me

if typeof ctrls is TON_TYPE_DE_CONTROL then msgbox ....



tu as quelques chose?

la Form détecte bien ces contrôles?
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
1
Merci pour ta réponse.

Voilà avec ces lignes :
For Each ctrls In Me
If TypeOf ctrls Is Horloge Then MsgBox ctrls.Name
Next

Tout simplement, en early binding (composant ajouté avec la souris) ça me fait un msgbox Horloge1 mais en late binding ça ne se lance pas : "user -defined type not defined" sur la ligne du milieu.
J'ajoute le composant avec cette ligne :

Set Horloge1 = Form2.Controls.Add("HorlogeProject.Horloge", "Horloge")
Horloge1.Visible = True

Ciaò
[mailto:madmatt_12@msn.com MadMatt]
www.madmatt.fr.st
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
tu sais au moins que le problème des propriétés vient du fait que ton composant n'est pas normalement reconnu.



cette syntaxe [Set Horloge1 = Form2.Controls.Add("HorlogeProject.Horloge", "Horloge")] me parraît bizarre....

Horloge1 est déclaré en tant qu'objet sur .... Form1 ?



l'objet est référencé dans le projet ....

as-tu essayé qqchose du genre :

Set Me.Horloge1 = VB.Controls.Add("Horloge","Horloge")



à tenter.....
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
arf, ok

++