Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

erreur cration objet form

6 réponses
Avatar
thebeb
Bonjour

dans un projet activex dll, j'ai une procedure de ma classe cls_enfant avec
ce code :
Code:

Public Function Creerfenetre() As Variant
Dim fen As Form
Set fen = CreateObject("Form")
Set fen = Nothing
End Function



dans un autre projet je souhaite utiliser cette classe.
je l'ajoute donc en référence puis j'appelle ce code
Code:

Private Sub Form_Load()

Dim fenetre As New cls_enfant
res = fenetre.Creerfenetre

End Sub



qd je compile la DLL, pas de pb
qd j'execute mon projet, j'ai une erreur d'execution 429 qui me dit que le
composant activex ne peut creer l'objet.

que faire ?


merci

6 réponses

Avatar
ng
Salut,

Ce n'est pas très clair, tu mélanges du early et du late binding.
Que veux-tu faire exactement.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

thebeb wrote:
Bonjour

dans un projet activex dll, j'ai une procedure de ma classe
cls_enfant avec ce code :
Code:

Public Function Creerfenetre() As Variant
Dim fen As Form
Set fen = CreateObject("Form")
Set fen = Nothing
End Function



dans un autre projet je souhaite utiliser cette classe.
je l'ajoute donc en référence puis j'appelle ce code
Code:

Private Sub Form_Load()

Dim fenetre As New cls_enfant
res = fenetre.Creerfenetre

End Sub



qd je compile la DLL, pas de pb
qd j'execute mon projet, j'ai une erreur d'execution 429 qui me dit
que le composant activex ne peut creer l'objet.

que faire ?


merci


Avatar
thebeb
Bonjour

je veux faire une DLL qui possede une méthode pour creer une fenetre.

merci


"ng" a écrit dans le message de
news:
Salut,

Ce n'est pas très clair, tu mélanges du early et du late binding.
Que veux-tu faire exactement.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

thebeb wrote:
> Bonjour
>
> dans un projet activex dll, j'ai une procedure de ma classe
> cls_enfant avec ce code :
> Code:
>
> Public Function Creerfenetre() As Variant
> Dim fen As Form
> Set fen = CreateObject("Form")
> Set fen = Nothing
> End Function
>
>
>
> dans un autre projet je souhaite utiliser cette classe.
> je l'ajoute donc en référence puis j'appelle ce code
> Code:
>
> Private Sub Form_Load()
>
> Dim fenetre As New cls_enfant
> res = fenetre.Creerfenetre
>
> End Sub
>
>
>
> qd je compile la DLL, pas de pb
> qd j'execute mon projet, j'ai une erreur d'execution 429 qui me dit
> que le composant activex ne peut creer l'objet.
>
> que faire ?
>
>
> merci




Avatar
ng
Salut,

'//Créé un projet DLL ActiveX nommé Projet1 et ajoute y une form puis ce
code dans la classe princiaple :

Option Explicit

Public Sub CreateWindow()
Dim oNewForm As Form1 '//JAMAIS de As New
Set oNewForm = New Form1

Call oNewForm.Show

Set oNewForm = Nothing '//libère la reference
End Sub


'//exemple early binding :
'//Puis un projet EXE Standard nommé Projet2 :
'// il faut ajouter une reference à Projet1.DLL

Private Sub Form_Load()
Dim oMaClasseDLL As Projet1.Class1
Set oMaClasseDLL = New Projet1.Class1

Call oMaClasseDLL.CreateWindow

Set oMaClasseDLL = Nothing
End Sub


'//Exemple latebinding avec projet nommé Projet2 aussi mais son référence
necessaire :
Private Sub Form_Load()
Dim oMaClasseDLL As Object
Set oMaClasseDLL = CreateObject("Projet1.Class1")

Call oMaClasseDLL.CreateWindow

Set oMaClasseDLL = Nothing
End Sub

Rappel, différence entre early et late binding :
http://faq.vb.free.fr/index.php?question4

Doc annexe : infos sur la compatibilité binaire (pour les mise à jour future
de ta DLL) :
http://faq.vb.free.fr/index.php?question8




--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

thebeb wrote:
Bonjour

je veux faire une DLL qui possede une méthode pour creer une fenetre.

merci


"ng" a écrit dans le message de
news:
Salut,

Ce n'est pas très clair, tu mélanges du early et du late binding.
Que veux-tu faire exactement.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

thebeb wrote:
Bonjour

dans un projet activex dll, j'ai une procedure de ma classe
cls_enfant avec ce code :
Code:

Public Function Creerfenetre() As Variant
Dim fen As Form
Set fen = CreateObject("Form")
Set fen = Nothing
End Function



dans un autre projet je souhaite utiliser cette classe.
je l'ajoute donc en référence puis j'appelle ce code
Code:

Private Sub Form_Load()

Dim fenetre As New cls_enfant
res = fenetre.Creerfenetre

End Sub



qd je compile la DLL, pas de pb
qd j'execute mon projet, j'ai une erreur d'execution 429 qui me dit
que le composant activex ne peut creer l'objet.

que faire ?


merci






Avatar
thebeb
ok, j'arrive à le faire fonctionner mais comment avoir la fenetre enfant
incruster dans la fenetre parent ?


"ng" a écrit dans le message de
news:
Salut,

'//Créé un projet DLL ActiveX nommé Projet1 et ajoute y une form puis ce
code dans la classe princiaple :

Option Explicit

Public Sub CreateWindow()
Dim oNewForm As Form1 '//JAMAIS de As New
Set oNewForm = New Form1

Call oNewForm.Show

Set oNewForm = Nothing '//libère la reference
End Sub


'//exemple early binding :
'//Puis un projet EXE Standard nommé Projet2 :
'// il faut ajouter une reference à Projet1.DLL

Private Sub Form_Load()
Dim oMaClasseDLL As Projet1.Class1
Set oMaClasseDLL = New Projet1.Class1

Call oMaClasseDLL.CreateWindow

Set oMaClasseDLL = Nothing
End Sub


'//Exemple latebinding avec projet nommé Projet2 aussi mais son référence
necessaire :
Private Sub Form_Load()
Dim oMaClasseDLL As Object
Set oMaClasseDLL = CreateObject("Projet1.Class1")

Call oMaClasseDLL.CreateWindow

Set oMaClasseDLL = Nothing
End Sub

Rappel, différence entre early et late binding :
http://faq.vb.free.fr/index.php?question4

Doc annexe : infos sur la compatibilité binaire (pour les mise à jour


future
de ta DLL) :
http://faq.vb.free.fr/index.php?question8




--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

thebeb wrote:
> Bonjour
>
> je veux faire une DLL qui possede une méthode pour creer une fenetre.
>
> merci
>
>
> "ng" a écrit dans le message de
> news:
>> Salut,
>>
>> Ce n'est pas très clair, tu mélanges du early et du late binding.
>> Que veux-tu faire exactement.
>>
>> --
>> Nicolas G.
>> FAQ VB : http://faq.vb.free.fr
>> API Guide : http://www.allapi.net
>> Google Groups : http://groups.google.fr/
>> MZ-Tools : http://www.mztools.com/
>>
>> thebeb wrote:
>>> Bonjour
>>>
>>> dans un projet activex dll, j'ai une procedure de ma classe
>>> cls_enfant avec ce code :
>>> Code:
>>>
>>> Public Function Creerfenetre() As Variant
>>> Dim fen As Form
>>> Set fen = CreateObject("Form")
>>> Set fen = Nothing
>>> End Function
>>>
>>>
>>>
>>> dans un autre projet je souhaite utiliser cette classe.
>>> je l'ajoute donc en référence puis j'appelle ce code
>>> Code:
>>>
>>> Private Sub Form_Load()
>>>
>>> Dim fenetre As New cls_enfant
>>> res = fenetre.Creerfenetre
>>>
>>> End Sub
>>>
>>>
>>>
>>> qd je compile la DLL, pas de pb
>>> qd j'execute mon projet, j'ai une erreur d'execution 429 qui me dit
>>> que le composant activex ne peut creer l'objet.
>>>
>>> que faire ?
>>>
>>>
>>> merci




Avatar
thebeb
je m'explique :

pour le moment il ya 2 fenetres dans la barre des tache.

la fenetre efant ne peut pas quitter la fenetre parent.

je voudrais qu'il n'y ai qu'une seule fenetre dans la barre de tache et
pouvoir positionner la fenetre enfant dans la fenetre parent(avec des
coordonnées par ex)

merci


"thebeb" a écrit dans le message de
news:
ok, j'arrive à le faire fonctionner mais comment avoir la fenetre enfant
incruster dans la fenetre parent ?


"ng" a écrit dans le message de
news:
> Salut,
>
> '//Créé un projet DLL ActiveX nommé Projet1 et ajoute y une form puis ce
> code dans la classe princiaple :
>
> Option Explicit
>
> Public Sub CreateWindow()
> Dim oNewForm As Form1 '//JAMAIS de As New
> Set oNewForm = New Form1
>
> Call oNewForm.Show
>
> Set oNewForm = Nothing '//libère la reference
> End Sub
>
>
> '//exemple early binding :
> '//Puis un projet EXE Standard nommé Projet2 :
> '// il faut ajouter une reference à Projet1.DLL
>
> Private Sub Form_Load()
> Dim oMaClasseDLL As Projet1.Class1
> Set oMaClasseDLL = New Projet1.Class1
>
> Call oMaClasseDLL.CreateWindow
>
> Set oMaClasseDLL = Nothing
> End Sub
>
>
> '//Exemple latebinding avec projet nommé Projet2 aussi mais son


référence
> necessaire :
> Private Sub Form_Load()
> Dim oMaClasseDLL As Object
> Set oMaClasseDLL = CreateObject("Projet1.Class1")
>
> Call oMaClasseDLL.CreateWindow
>
> Set oMaClasseDLL = Nothing
> End Sub
>
> Rappel, différence entre early et late binding :
> http://faq.vb.free.fr/index.php?question4
>
> Doc annexe : infos sur la compatibilité binaire (pour les mise à jour
future
> de ta DLL) :
> http://faq.vb.free.fr/index.php?question8
>
>
>
>
> --
> Nicolas G.
> FAQ VB : http://faq.vb.free.fr
> API Guide : http://www.allapi.net
> Google Groups : http://groups.google.fr/
> MZ-Tools : http://www.mztools.com/
>
> thebeb wrote:
> > Bonjour
> >
> > je veux faire une DLL qui possede une méthode pour creer une fenetre.
> >
> > merci
> >
> >
> > "ng" a écrit dans le message de
> > news:
> >> Salut,
> >>
> >> Ce n'est pas très clair, tu mélanges du early et du late binding.
> >> Que veux-tu faire exactement.
> >>
> >> --
> >> Nicolas G.
> >> FAQ VB : http://faq.vb.free.fr
> >> API Guide : http://www.allapi.net
> >> Google Groups : http://groups.google.fr/
> >> MZ-Tools : http://www.mztools.com/
> >>
> >> thebeb wrote:
> >>> Bonjour
> >>>
> >>> dans un projet activex dll, j'ai une procedure de ma classe
> >>> cls_enfant avec ce code :
> >>> Code:
> >>>
> >>> Public Function Creerfenetre() As Variant
> >>> Dim fen As Form
> >>> Set fen = CreateObject("Form")
> >>> Set fen = Nothing
> >>> End Function
> >>>
> >>>
> >>>
> >>> dans un autre projet je souhaite utiliser cette classe.
> >>> je l'ajoute donc en référence puis j'appelle ce code
> >>> Code:
> >>>
> >>> Private Sub Form_Load()
> >>>
> >>> Dim fenetre As New cls_enfant
> >>> res = fenetre.Creerfenetre
> >>>
> >>> End Sub
> >>>
> >>>
> >>>
> >>> qd je compile la DLL, pas de pb
> >>> qd j'execute mon projet, j'ai une erreur d'execution 429 qui me dit
> >>> que le composant activex ne peut creer l'objet.
> >>>
> >>> que faire ?
> >>>
> >>>
> >>> merci
>
>




Avatar
ng
Il suffit de faire un Show(vbModal).

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

thebeb wrote:
je m'explique :

pour le moment il ya 2 fenetres dans la barre des tache.

la fenetre efant ne peut pas quitter la fenetre parent.

je voudrais qu'il n'y ai qu'une seule fenetre dans la barre de tache
et pouvoir positionner la fenetre enfant dans la fenetre parent(avec
des coordonnées par ex)

merci


"thebeb" a écrit dans le message de
news:
ok, j'arrive à le faire fonctionner mais comment avoir la fenetre
enfant incruster dans la fenetre parent ?


"ng" a écrit dans le message de
news:
Salut,

'//Créé un projet DLL ActiveX nommé Projet1 et ajoute y une form
puis ce code dans la classe princiaple :

Option Explicit

Public Sub CreateWindow()
Dim oNewForm As Form1 '//JAMAIS de As New
Set oNewForm = New Form1

Call oNewForm.Show

Set oNewForm = Nothing '//libère la reference
End Sub


'//exemple early binding :
'//Puis un projet EXE Standard nommé Projet2 :
'// il faut ajouter une reference à Projet1.DLL

Private Sub Form_Load()
Dim oMaClasseDLL As Projet1.Class1
Set oMaClasseDLL = New Projet1.Class1

Call oMaClasseDLL.CreateWindow

Set oMaClasseDLL = Nothing
End Sub


'//Exemple latebinding avec projet nommé Projet2 aussi mais son
référence necessaire :
Private Sub Form_Load()
Dim oMaClasseDLL As Object
Set oMaClasseDLL = CreateObject("Projet1.Class1")

Call oMaClasseDLL.CreateWindow

Set oMaClasseDLL = Nothing
End Sub

Rappel, différence entre early et late binding :
http://faq.vb.free.fr/index.php?question4

Doc annexe : infos sur la compatibilité binaire (pour les mise à
jour future de ta DLL) :
http://faq.vb.free.fr/index.php?question8




--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

thebeb wrote:
Bonjour

je veux faire une DLL qui possede une méthode pour creer une
fenetre.

merci


"ng" a écrit dans le message de
news:
Salut,

Ce n'est pas très clair, tu mélanges du early et du late binding.
Que veux-tu faire exactement.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

thebeb wrote:
Bonjour

dans un projet activex dll, j'ai une procedure de ma classe
cls_enfant avec ce code :
Code:

Public Function Creerfenetre() As Variant
Dim fen As Form
Set fen = CreateObject("Form")
Set fen = Nothing
End Function



dans un autre projet je souhaite utiliser cette classe.
je l'ajoute donc en référence puis j'appelle ce code
Code:

Private Sub Form_Load()

Dim fenetre As New cls_enfant
res = fenetre.Creerfenetre

End Sub



qd je compile la DLL, pas de pb
qd j'execute mon projet, j'ai une erreur d'execution 429 qui me
dit que le composant activex ne peut creer l'objet.

que faire ?


merci