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 :

Propriété d'un controle ActiveX


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier Avatar de Ndugu
    Profil pro
    Inscrit en
    Août 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 121
    Points : 88
    Points
    88
    Par défaut Propriété d'un controle ActiveX
    Bonjour à tous,

    je construis un controle activeX simple pour connaitre cette technologie.

    Je me saire du tutoriel :

    http://activex.developpez.com/%5BAct...%20ActiveX.pdf

    J'ai ajouté une propriété :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim m_MaProp As String
     
    Public Property Get MaProp() As String
        MaProp = m_MaProp
    End Property
     
    Public Property Let MaProp(vValeur As String)
        m_MaProp = vValeur
    End Property
    Voici mon problème :

    La propriété : apparait bien dans la liste des propriétés lorsque j'instancie le controle (comme montré au milieu de la page 4 du pdf).

    Mais lorsque j'édit la propriété à la main hors exécution, puis que j'exécute le programme, la chaine ne reste pas en mémoire, je ne peux pas l'utiliser. Comment faire?

    Merci de votre aide

    Ndugu

  2. #2
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    tu n'as pas renseigné ta propriété dans UserControl_WriteProperties et UserControl_ReadProperties

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
        Call PropBag.WriteProperty("MaProp", m_MaProp, 1)
    End Sub
     
    Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
        m_MaProp= PropBag.ReadProperty("MaProp", 1)
    End Sub
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  3. #3
    Membre régulier Avatar de Ndugu
    Profil pro
    Inscrit en
    Août 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 121
    Points : 88
    Points
    88
    Par défaut
    Merci beacoup ThierryAIM !

    ca marche parfaitement!



  4. #4
    Membre régulier Avatar de Ndugu
    Profil pro
    Inscrit en
    Août 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 121
    Points : 88
    Points
    88
    Par défaut
    J'ai un autre problème toujours sur le meme sujet :

    voici mon control :
    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
     
    Dim m_MaProp As String
     
    Public Property Get MaProp() As String
        MaProp = m_MaProp
    End Property
     
    Public Property Let MaProp(vValeur As String)
        m_MaProp = vValeur
    End Property
     
    Public Sub UserControl_WriteProperties(PropBag As PropertyBag)
        Call PropBag.WriteProperty("MaProp", m_MaProp, 1)
    End Sub
     
    Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
        m_MaProp = PropBag.ReadProperty("MaProp", 1)
    End Sub
    et voici la page de propriété que je lui ai attaché :
    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 PropertyPage_ApplyChanges()
        SelectedControls(0).MaProp = PropertyPage.Text1.Text
    End Sub
     
    Private Sub PropertyPage_SelectionChanged()
        PropertyPage.Text1.Text = SelectedControls(0).MaProp
    End Sub
     
    Private Sub Text1_Change()
        Changed = True
    End Sub
    Lorsque je change MaProp par l'intermédiaire de ma page de propriété, MaProp garde son ancienne valeur lors de l'execution.

    Je pense que c'est par ce que l'événement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserControl_WriteProperties
    ne se produit pas lors de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PropertyPage_ApplyChanges()
    comment faire?

    Merci pour votre aide,

    Ndugu

  5. #5
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    tu en as oublié un morceau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Property Let MaProp(vValeur As String)
        m_MaProp = vValeur
        PropertyChanged "MaProp"
    End Property
    pour forcer, justement l'evenement WriteProperties
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  6. #6
    Membre régulier Avatar de Ndugu
    Profil pro
    Inscrit en
    Août 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 121
    Points : 88
    Points
    88
    Par défaut
    Re-merci ThierryAIM,

    Tu m'es d'un grand secours,

    Je bosse actuellement avec 3 tutos sur le sujet (dont celui proposé sur développez http://activex.developpez.com/%5BAct...%20ActiveX.pdf ) et aucun ne mentionnait PropertyChanged !!!

    Pourrais tu me dire si tu connais un bouquin ou un cours complet sur les activeXs?
    (Sans tomber dans un pavé de 1000 pages qui serais, je le pense, trop complexe pour moi.)

    Merci encore!

  7. #7
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Si tu utilises VB6 Pro, il y a un truc dans le menu Compléments qui s'appelle "Gestionnaire de compléments", et la dedans y'a un autre truc qui s'appelle "Assistant Interface de controles ActiveX" (et pour la route, tant qu'on y est, y'a aussi un "Assistant page de propriétés")

    Teste-les, regarde les différentes options et possibilités, puis regarde le code généré, et tu verras que tu n'as pas besoin de te farcir un pavé de 1000 pages
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  8. #8
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Il y a même un exemple tout-à-fait "parlant" dans le sous-répertoire "samples" ou "exemples" de DevStudio !

  9. #9
    Membre régulier Avatar de Ndugu
    Profil pro
    Inscrit en
    Août 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 121
    Points : 88
    Points
    88
    Par défaut
    Merci a tous!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Controle ActiveX : propriété de type Collection
    Par irreantum dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 26/03/2007, 12h54
  2. [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, 12h10
  3. Réponses: 3
    Dernier message: 08/07/2004, 11h06
  4. Réponses: 3
    Dernier message: 11/05/2004, 18h39
  5. Controle ActiveX MessageMap
    Par philippe V dans le forum MFC
    Réponses: 4
    Dernier message: 12/02/2004, 16h59

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