IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Controle ActiveX : propriété de type Collection


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Controle ActiveX : propriété de type Collection
    Bonjour,

    Je veux developper un controle activeX qui possède des propriétés objet (exemple : voir le control TabTrip de Microsoft, propriété Tabs)

    comment utiliser les methodes Readproperties et WriteProperties pour que, après avoir ajouté des éléments dans la collection en mode création sur la fenêtre d'une appli vb, le controle se reconstruise en mode exécution (après l'exécution de la methode ReadProperties)

    Merci de votre aide !

  2. #2
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Faudra voir du côté du développement d'une nouvelle classe. Regarde dans l'aide de VB pour la programmation de classes personnalisées.

    À mon humble avis, en tout cas...

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Suite de la question :
    Juste une petite précision : après avoir lu une question fondemmentale sur le manque de couleur des boites à onglets de bases, je me suis mis en devoir de développer moi-meme une boite à onglet colorisable dont l'onglet sélectionné sera de la couleur de la boite et les autres onglets de la couleur du fond du controle (pour plus de contraste).

    Bien evidemment, le code obtenu sera ajouté au codes de developpez.com !
    A+

  4. #4
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Alors bonne chance et je vais suivre ça de près. Vois-tu, je n'ai programmé qu'une fois un contrôle activeX juste pour voir comment... Je ne serai pas d'une bien grande aide mais je suis curieuse du résultat.

  5. #5
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par zazaraignée
    Faudra voir du côté du développement d'une nouvelle classe. Regarde dans l'aide de VB pour la programmation de classes personnalisées.

    À mon humble avis, en tout cas...
    oui, en fait, j'ai incorporé une classe Onglet et une classe collection Onglets au controle utilisateur mais entre le mode création et le mode utilisation, l'instance du controle est détruite puis reconstruite à partir des propriétés enregistrée a l'aide de writeproperties ! je ne parviens pas à mémoriser la collection d'onglets

    remarque : J'utilise une procédure Property get et property Let Onglets qui permet d'acceder et de modifier la collection d'onglet.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    hmm je dirais qu'il faut mettre en dur l'initialisation de te collection dans usercontrol_initialize

  7. #7
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Vld44
    hmm je dirais qu'il faut mettre en dur l'initialisation de te collection dans usercontrol_initialize
    Oui, c'est une idée ! il me semble que l'événement Initialize s'exécute avant readproperties, non ? donc je ne peux pas construire la boite tant que je n'ai pas lu ses propriétés :
    voici le contenu de readproperties

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
      Debug.Print "UserControl_ReadProperties"
      Set Font = PropBag.ReadProperty("Font", Ambient.Font)
      BackColor = PropBag.ReadProperty("BackColor", Ambient.BackColor)
      DesabledColorText = PropBag.ReadProperty("DesabledColorText", DesabledCouleurLabel)
      EnabledColorText = PropBag.ReadProperty("EnabledColorText", EnabledCouleurLabel)
      UnselectedOngletColor = PropBag.ReadProperty("UnselectedOngletColor", UnselectedOngletCouleur)
      SelectedOngletColor = PropBag.ReadProperty("SelectedOngletColor", SelectedOngletCouleur)
      Set mcolOnglets = PropBag.ReadProperty("Onglets", Nothing)
      Call ConstruireBoîte
      Relief = PropBag.ReadProperty("Relief", Relief3D)
    '  OngletCourant = PropBag.ReadProperty("OngletCourant", 0)
    End Sub
    je pensais construire la boite à onglet juste après avoir lu la propriété "Onglets" mais non, ça ne fonctionne pas !

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    Non mais le userControl_initialize est lancé en mode VB sans même que tu n'exécute ton programme

    L'idée est de ne pas stocker dans une property ce qui t'intéresse mais de te faire ta property custom par exemple, sous la forme d'une variable du controle initialisée danns le initialize

  9. #9
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Oui ? tu veux dire que ma variable mcolOnglets que j'ai déclarée en private pourrait toujour contenir la collection d'onglet créé en mode création dans mon appli et me permettre de recharger les onglet juste avant le readproperties ?
    bin je test tout de suite !

  10. #10
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Et non, Une variable contenant la liste des onglets créés en mode création dans mon appli (exemple : je veux que deux onglets soit déjà présents en mode exécution) est détruite lorsque je lance l'appli, puisse l'instance de la boite à onglets est d'abord détruite puis reconstruite à l'aide de ses propriétés ...

    si j'ai bien compris le mécanisme des controles activex .... mais je n'en suis plus très sur !!

  11. #11
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    Je vais peut-être dire une annerie, mais est-ce que tu ne pourrais pas faire une petite fonction qui ajoute des onglets à la volée ? Tu mets cette fonction dans l'initialize ou ailleurs (après la gestion des propriétés internes au contrôle) et le tour est joué non ?

  12. #12
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Vld44
    Je vais peut-être dire une annerie, mais est-ce que tu ne pourrais pas faire une petite fonction qui ajoute des onglets à la volée ? Tu mets cette fonction dans l'initialize ou ailleurs (après la gestion des propriétés internes au contrôle) et le tour est joué non ?
    Oui, je vois ce que tu veux dire : En fait, pour créer cette fonction (qui existe d'ailleur et qui construit les onglets), j'ai besoin de mémoriser la description des onglets. Cette description est un ensemble d'information que j'ai mémorisé dans un objet mais ce type de propriété objet je ne sais pas l'enregistrer avec writeproperties comme je sais le faire pour les couleurs.

    merci tout de meme pour ton aide !

  13. #13
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    Ok, je ne sais pas comment fonctionne writeproperties, mais au cas où tu ne trouverais pas de solution avec ça je pense que tu pourrais également stocker tes fameuses descriptions en dur quelque part et t'en servir dans la fonction d'initialisation.

    En fait, cela revient à complètement créer tes onglets applicativement from scratch ...

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/11/2010, 13h03
  2. Requêter en HQL les propriétés de type Collection
    Par sicard_51 dans le forum Hibernate
    Réponses: 1
    Dernier message: 08/03/2010, 21h08
  3. [nested] récupérer une propriété de type collection
    Par kokumbo dans le forum Struts 1
    Réponses: 2
    Dernier message: 25/10/2007, 17h16
  4. Propriété d'un controle ActiveX
    Par Ndugu dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 26/05/2006, 16h40
  5. [VB6] Créer une page de propriété d'un control ActiveX
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 09/05/2006, 13h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo