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

Problème picture dans active X

4 réponses
Avatar
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

4 réponses

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

- www.gelase.org
"Marc" a écrit dans le message de news:

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



Avatar
Marc
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" a écrit dans le message de news:

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

"Marc" a écrit dans le message de news:

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







Avatar
Marc
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" a écrit dans le message de news:

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

"Marc" a écrit dans le message de news:

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











Avatar
Jacques93
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.