Pb usercontrol avec property de type object

[Résolu]
Signaler
Messages postés
58
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
12 février 2005
-
Messages postés
58
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
12 février 2005
-
bonsoir,
je suis en train de realiser un user controle qui affichera des courbes. j'ai trois classes et trois collection nomeées repectivement "Test", "OptCourbe" "OptPoint", "TestS","OptCourbeS","OptPointS",
la classe "Test" fait reference à la collection "OptCourbes" et la classe "OptCourbe" fait reference à la collection "OptPoints"

Test:
property Nom as String (nom des groupes de courbes)
property optC as OptCourbeS (reference a la collection)

OptCourbe:
property couleur as ole_color (couleur de la courbe)
property OptP as OptPoints (collection des pts de la courbe)

OptPoint:
property Caractere as string (caractere affiche sur la courbe)
property Masque as Boolean
property Status as integer

Dans mon user controle J'ai defini une une propriété nommée "TestS" de type Tests defini ci dessus. Cette propriete est destinée a stocker la facon dont les courbe vont etres affichées.

J'aimerais pouvoir faire les deux choses suivantes :

1) créer un objet representant la valeur par defaut de ma propriété et l'affecter au moment de la creation de mon user controle.

2) pouvoir enregistrer la propriete en fin d'execution afin de pouvoir restituer les mêmes valeurs lors du prochain demarage de l'application.

peut on realiser tout ceci avec le propertybag et si oui comment ?
sinon quelles solutions envisager. (base de registre, fichier ...)
ouffffffffffffff.

merci d'avance

gi

4 réponses

Messages postés
25
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
2 novembre 2004

Désolé, je vais repartir de mon exemple :

Donc la clsToolBars est une collection contenant des objets clsToolBar. Donc quand je sauvegarde dans le property bag, je créé une propriété contenant le nombre d'élément de ma collection :clsToolBars.Count
ensuite pour chaque élément de ma collection j'écris leur propriété genre (je t'écris ça de mémoire)

'Écris le nombre de toolbar
PropBag.WriteProperty "NbToolbars", clsToolBars.Count
For i = 1 to clsToolBars.Count
clsToolBar = clsToolbars(i)
PropBag.WriteProperty "Nom" & i, clsToolBar.Nom (Peut-être de n'importe quel type)
PropBag.WriteProperty "Description" & i, clsToolBar.Description

'Écris le nombre de bouton sur la toolbar courante
PropBag.WriteProperty "NbButtons", clsToolBars.clsToolBar(i).Buttons.Count
For j = 1 to clsToolBars.clsToolBar(i).Buttons.Count
clsButton = clsToolBars.clsToolBar(i).Buttons(j)

PropBag.WriteProperty "Icon" & i, clsButton.Picture
PropBag.WriteProperty "Enabled" & i, clsButton.Picture
...
Next j
Next i

Voici grosso modo l'exemple de mémoire dont je te parlais pour écrire des collections de classes dans le property bag. Je ne sais pas s'il existe d'autre façon de faire, c'est la seule que je connaisse et elle est efficace. Pour la lecture, c'est le chemin inverse. Tu vas chercher le nombre d'élément dans le property bag et tu reconstruit ta structure de classes....

J'espère que ça répond à tes besoins!!!
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 70 internautes nous ont dit merci ce mois-ci

Messages postés
25
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
2 novembre 2004

Salut,
J'ai fait un usercontrol il y a un certain avec une structure de classes similaires (Toolbars -> Toolbar -> Button). je t'explique comment je fonctionne:
La façon que j'ai trouvé pour stocker les info dans le propertybag, j'ai une propriété contenant par exemple le nombre de toolbar, ensuite je boucle pour récupéré l'info pour chaque toolbar (genre : "toolbar" & index (correspond au no de toolbar)) & "_NomPropriete" et ainsi de suite... donc à partir de cette info, je peux reconstruire la toolbar dans l'application. Pour sauvegarder, c'est le chemin inverse...
Pour ce qui d'avoir un objet par défaut lors de la création du contrôle, dans UserControl_Init (je crois!!!) tu créé tes objets avec leur valeur par défaut que tu mets dans tes collections... c'est la seule possibilité que je vois.
Si tu as des questions n'hésite pas!!!
J
Messages postés
58
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
12 février 2005

je ne comprend pas bien ta facon d'utiliser le propertybag.
peut tu me faire un petit exemple

merci

gi
Messages postés
58
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
12 février 2005

ok
merci beaucoup pour cet exemple. Cette facon de proceder repond tout a fait à ce que j'attendais.

gi