Propriété UserControl

DedeSurf Messages postés 156 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 23 novembre 2011 - 10 févr. 2008 à 03:40
DedeSurf Messages postés 156 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 23 novembre 2011 - 12 févr. 2008 à 13:14
Bonjour,
Ma question porte sur les UserControl (Projet ActivX).
Je voudrais savoir comment faire une propriété personnalisé comme Picture, que l'on puisse clicker sur le boutton "..." en mode édition sur une Form, pour ouvrir un common dialogue. Et par la même occasion enregistrer le fichier choisi dans le programme
Merci d'avance

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
10 févr. 2008 à 12:12
Salut
Il faut que tu déclares/utilises les déclarations Property Set, Property Let ou Property Get associées à des types d'objet en rapport avec ce que tu comptes échanger.
Exemple pour donner au UserControl un attribut Visible :
Dim m_Shown As Boolean   ' dans la partie déclarations
C'est cette variable qui servira de mémoire au reste du programme situé dans le UserControl. Généralement, ces variables sont précédées d'un 'm'.
Puis viennent les procédures permettant à l'objet/la forme qui héberge de modifier ou lire la valeur actuelle :
Public Property Let Visible(NewValue As Boolean)
    If NewValue <> m_Shown Then
        m_Shown = NewValue
End Property
Public Property Get Visible() As Boolean
    Visible = m_Shown
End Property
Dans la forme, tu verras ainsi apparaittre UserControl1.Visible parmi les propriétés de ton UserControl côté forme hôte.

Voir aussi UserControl_ReadProperties et UserControl_WriteProperties (associé à l'instruction PropertyChanged) qui se chargeront de mémoriser les valeurs des paramètres en mode création er run.
Il faut toujours garder en t$ete qu'un UserControl est en mode Run même pendant la phase de création, ce qui rend parfois délicat les manips.

Charge des exemples sur vbfrance et tu verras comment c'est fait, par exemple et au hasard , <cette source>

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés





<hr />

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
DedeSurf Messages postés 156 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 23 novembre 2011
12 févr. 2008 à 13:14
Salut,

Je sais crée une activX toute simple avec des propriétés, mais je voulais une propriété ou l'on peu chercher un fichier ex:
pour la propriété ImagePath quand on clique sur le petit boutton "..." comme la propriété Picture sa nous ouvre un Dialogue Box, cela évité de tapé ou copier collé le path d'une image, voila
Et pour enregistrer le fichier dans le programme j'ai déja essayer avec PropBag en ouvrant l'image en binaire avec un tableau de byte le temp de chargement est beaucoup trop lent rien que pour un png de 32*32 en 32bits !, La propriété Picture ne fais jamais ralentir l'affichage de form en mode création elle !

Ce que je veux faire s'est refaire la propriété Picture quasi a l'identique, sauf que je voudrais prendre en compte les fichiers 32Bits comme les png, ico 32b, JP2,  ect ...
0
Rejoignez-nous