Problème picture dans active X

Le
Marc
Bonjour,

Je suis en train de créer un Active X.

En effet, cet active x est un bouton, j'ai plusieurs images qui changent au
grès des actions.
Normal, survol, click, disabled .
Cela fonctionne très bien.

Juste un problème, quand le control est dans un programme et que je demande
au prog de changer les images, donc en mode exécution, vb6 répond
"Utilisation incorrecte de la propriété", pourtant elle est publique.

Avez vous une idée, je joint un bout de code pour montrer ce que j'ai fait.

Public Property Get PictureN() As Picture
On Error Resume Next

Set PictureN = Image1.Picture
End Property

Public Property Set PictureN(ByVal NewImage1 As Picture)
On Error Resume Next

Image1.Picture = NewImage1
PropertyChanged "PictureN"
Image1.Height = UserControl.Height
Image1.Width = UserControl.Width
Label1.Left = (UserControl.Width - Label1.Width) / 2
Label1.Top = (UserControl.Height - Label1.Height) - (50)
End Property




Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
On Error Resume Next

Set PictureN = PropBag.ReadProperty("PictureN", Image1.Picture)
End Sub

Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
On Error Resume Next

PropBag.WriteProperty "PictureN", PictureN
End Sub

Par avance merci

Marc
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Marc
Le #20153241
Persones n'a d'idée ?
peut être faut il créer une autre propriete sans le type picture ???

- www.gelase.org
"Marc"
Bonjour,

Je suis en train de créer un Active X.

En effet, cet active x est un bouton, j'ai plusieurs images qui changent
au grès des actions.
Normal, survol, click, disabled ....
Cela fonctionne très bien.

Juste un problème, quand le control est dans un programme et que je
demande au prog de changer les images, donc en mode exécution, vb6 répond
"Utilisation incorrecte de la propriété", pourtant elle est publique.

Avez vous une idée, je joint un bout de code pour montrer ce que j'ai
fait.

Public Property Get PictureN() As Picture
On Error Resume Next

Set PictureN = Image1.Picture
End Property

Public Property Set PictureN(ByVal NewImage1 As Picture)
On Error Resume Next

Image1.Picture = NewImage1
PropertyChanged "PictureN"
Image1.Height = UserControl.Height
Image1.Width = UserControl.Width
Label1.Left = (UserControl.Width - Label1.Width) / 2
Label1.Top = (UserControl.Height - Label1.Height) - (50)
End Property




Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
On Error Resume Next

Set PictureN = PropBag.ReadProperty("PictureN", Image1.Picture)
End Sub

Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
On Error Resume Next

PropBag.WriteProperty "PictureN", PictureN
End Sub

Par avance merci

Marc



Marc
Le #20155881
Précision utile c'est quand je fais BaButton1.Picture =
ImageList1.ListImages(1).Picture que j'ai le message d'erreur, en fait je
voudrait que mon controle se comporte comme le controle Image1.picture =
ImageList1.ListImages(1).Picture.

"Marc"
Persones n'a d'idée ?
peut être faut il créer une autre propriete sans le type picture ???

"Marc"
Bonjour,

Je suis en train de créer un Active X.

En effet, cet active x est un bouton, j'ai plusieurs images qui changent
au grès des actions.
Normal, survol, click, disabled ....
Cela fonctionne très bien.

Juste un problème, quand le control est dans un programme et que je
demande au prog de changer les images, donc en mode exécution, vb6 répond
"Utilisation incorrecte de la propriété", pourtant elle est publique.

Avez vous une idée, je joint un bout de code pour montrer ce que j'ai
fait.

Public Property Get PictureN() As Picture
On Error Resume Next

Set PictureN = Image1.Picture
End Property

Public Property Set PictureN(ByVal NewImage1 As Picture)
On Error Resume Next

Image1.Picture = NewImage1
PropertyChanged "PictureN"
Image1.Height = UserControl.Height
Image1.Width = UserControl.Width
Label1.Left = (UserControl.Width - Label1.Width) / 2
Label1.Top = (UserControl.Height - Label1.Height) - (50)
End Property




Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
On Error Resume Next

Set PictureN = PropBag.ReadProperty("PictureN", Image1.Picture)
End Sub

Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
On Error Resume Next

PropBag.WriteProperty "PictureN", PictureN
End Sub

Par avance merci

Marc







Marc
Le #20156251
En fait la propriété créée en type Picture ou ipicturedisp et en lecture
seule eu cours de l'exécution, comment peut on la passer en écriture ?

Par avance merci.




Précision utile c'est quand je fais BaButton1.Picture =
ImageList1.ListImages(1).Picture que j'ai le message d'erreur, en fait je
voudrait que mon controle se comporte comme le controle Image1.picture =
ImageList1.ListImages(1).Picture.

"Marc"
Persones n'a d'idée ?
peut être faut il créer une autre propriete sans le type picture ???

"Marc"
Bonjour,

Je suis en train de créer un Active X.

En effet, cet active x est un bouton, j'ai plusieurs images qui changent
au grès des actions.
Normal, survol, click, disabled ....
Cela fonctionne très bien.

Juste un problème, quand le control est dans un programme et que je
demande au prog de changer les images, donc en mode exécution, vb6
répond "Utilisation incorrecte de la propriété", pourtant elle est
publique.

Avez vous une idée, je joint un bout de code pour montrer ce que j'ai
fait.

Public Property Get PictureN() As Picture
On Error Resume Next

Set PictureN = Image1.Picture
End Property

Public Property Set PictureN(ByVal NewImage1 As Picture)
On Error Resume Next

Image1.Picture = NewImage1
PropertyChanged "PictureN"
Image1.Height = UserControl.Height
Image1.Width = UserControl.Width
Label1.Left = (UserControl.Width - Label1.Width) / 2
Label1.Top = (UserControl.Height - Label1.Height) - (50)
End Property




Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
On Error Resume Next

Set PictureN = PropBag.ReadProperty("PictureN", Image1.Picture)
End Sub

Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
On Error Resume Next

PropBag.WriteProperty "PictureN", PictureN
End Sub

Par avance merci

Marc











Jacques93
Le #20175131
Bonjour Marc
Marc a écrit :
Précision utile c'est quand je fais BaButton1.Picture =
ImageList1.ListImages(1).Picture que j'ai le message d'erreur, en fait je
voudrait que mon controle se comporte comme le controle Image1.picture =
ImageList1.ListImages(1).Picture.




Dans le code de ton ActiveX, la propriété s'appelle PictureN, essaie :

Set BaButton1.PictureN = ImageList1.ListImages(1).Picture

en faisant bien précéder l'affectation par Set


--

Cordialement,

Jacques.
Publicité
Poster une réponse
Anonyme