Salut,
J'ai créé un contrôle utilisateur contenant deux contrôles : une image (icoCtrl) et un label (lblCtrl)De l'extérieur, j'ai accès aux propriétés "Caption", "BackColor" et "Picture". J'ai réussi à obtenir la flèche déroulante et la palette de couleur sur la propriété BackColor en la définissant de type OLE_COLOR.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 'Version light Public Property Get Caption() As String Caption = lblCtrl.Caption End Property Public Property Let Caption(ByVal NewCaption As String) lblCtrl.Caption = NewCaption End Property Public Property Let BackColor(ByVal Couleur As OLE_COLOR) lblCtrl.BackColor = Couleur End Property Public Property Get BackColor() As OLE_COLOR BackColor = lblCtrl.BackColor End Property Public Property Let Picture(ByVal Img As String) Img = UCase(Img) icoCtrl.Tag = Img If Img = "" Then icoCtrl.Picture = LoadPicture Else icoCtrl.Picture = LoadPicture(Img) End If End Property Public Property Get Picture() As String Picture = icoCtrl.Tag End Property
Pour Picture, je me contente pour l'instant de fournir le nom du fichier image à charger.
J'aimerais obtenir une gestion identique à celle des propriété Picture des composant Vb (image, Form...).
J'ai réussi à obtenir le bouton avec "..." dans le cadre de la propriété qui ouvre la boite de dialogue de recherche de fichier avec :(même type pour Get) mais j'obtiens, dès que j'ai choisi un fichier image, une erreur "Nombre d'arguments incorrect ou affectation de propriété incorrecte" et je n'arrive donc pas à récupéré l'image pour la mettre dans icoCtrl. J'ai forcément une erreur de syntaxe ou de type mais le message arrive avant même d'executer la méthode Let associée à la propriété.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Public Property Let Picture(ByRef Img As StdPicture)
D'ailleurs, cette erreur intervient même si le corps de la méthode est vide.
J'ai également essayé avec le type IPictureDisp (celui utilisé par le controle "Image") mais c'est la même chose.
Quelqu'un aurait-il réussi à le faire.
Merci
Partager