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 :

ActiveX et les balise PARAM...


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 72
    Points : 123
    Points
    123
    Par défaut ActiveX et les balise PARAM...
    Je suis dans une impasse...
    J'ai créé un ActiveX Control pour une page en intranet... j'arrive sans soucis à l'afficher...
    Maintenant, je dois passer un paramètre "dea_id" à mon controle..

    Donc voilà le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <OBJECT ID="ControleEdinat"
    CLASSID="CLSID:1BC65C4C-29F7-474A-B591-5E2D55359DA1"
    CODEBASE="EdinatActivX.CAB#version=1,0,0,0">
    <PARAM NAME="dea_id" VALUE="1220089" >
    </OBJECT>
    Jusque là... ok... mais j'arrive pas à récupérer dans mon code VB cette foutue valeur...

    En vaguant sur le net, je me suis retrouver devant un code du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     Private strdea_id As String
     
     Public Property Let dea_id(ByVal id As String)
        strdea_id = id
     End Property
     
     Public Property Get dea_id() As String
        dea_id = strdea_id
     End Property
    Je me suis dit "pourquoi pas"... et bien mon controle se plante misérablement si j'ajoute le <PARAM> dans mon code HTML... et si je le vire... ca fonctionne... mais j'ai pas put récup mon argument dont j'ai besoin...

    Donc, mesdames et messieurs, la question est:
    Comment on récupère un paramètre du code HTML dans la baslise <PARAM ...> pour l'exploiter dans le controle ActiveX en VB (Visual Studio 6.0)

    Voilà merci

  2. #2
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Veuillez éviter les titres du style Urgent Svp (voir régles d'utilisation des forums)


    Utiliser une référence à mshtml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Dim st As String, myVar
        st = "<OBJECT ID=""ControleEdinat"" classid =""CLSID:1BC65C4C-29F7-474A-B591-5E2D55359DA1"" CODEBASE=""EdinatActivX.CAB#version=1,0,0,0""><PARAM NAME=""dea_id"" VALUE=""1220089"" ></OBJECT>"
     
     
        Dim idoc As New HTMLDocument, obj As Object
        idoc.body.innerHTML = st
     
        Set obj = idoc.getElementById("ControleEdinat")
        myVar = obj.document.getElementsByTagName("param")(0).Value
     
        Set idoc = Nothing:    Set obj = Nothing
    Ceci dit, si la variable portait un Id unique, ce serait plus simple avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Dim st As String, myVar
        st = "<OBJECT ID=""ControleEdinat"" classid =""CLSID:1BC65C4C-29F7-474A-B591-5E2D55359DA1"" CODEBASE=""EdinatActivX.CAB#version=1,0,0,0""><PARAM NAME=""dea_id"" ID=""dea_id"" VALUE=""1220089"" ></OBJECT>"
     
     
        Dim idoc As New HTMLDocument
        idoc.body.innerHTML = st
        myVar = idoc.getElementById("dea_id").Value
     
        Set idoc = Nothing

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 72
    Points : 123
    Points
    123
    Par défaut
    Ok pour le tag [urgent] désolé

    Je vois bien ce que tu veux dire, mais le soucis est que je génère la valeur dans un JSP... je peux pas mettre statiquement la valeur dans l'activeX

    Je dis ça parce que là tu me demandes de mettre le code HTML dans l'activeX ou alors j'ai pas compris

    Dois y avoir un moyen de récupérer le code HTML de la page directement, non ?


    PS: c'est un dev assez speed qu'on me demande de faire à la boite, et je connais pas tout ce qu'il faut pour finir...

  4. #4
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Les lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Dim st As String, myVar 
        st = "<OBJECT ID=""ControleEdinat"" classid =""CLSID:1BC65C4C-29F7-474A-B591-5E2D55359DA1"" CODEBASE=""EdinatActivX.CAB#version=1,0,0,0""><PARAM NAME=""dea_id"" VALUE=""1220089"" ></OBJECT>" 
     
     
        idoc.body.innerHTML = st
    ne sont fournies que pour tester l'exemple afin que l'object document soit chargée sans la page

    Les 2 seules lignes à retenir sont
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Set obj = idoc.getElementById("ControleEdinat") 
        myVar = obj.document.getElementsByTagName("param")(0).Value
    Citation Envoyé par Metal3d

    Dois y avoir un moyen de récupérer le code HTML de la page directement, non ?


    PS: c'est un dev assez speed qu'on me demande de faire à la boite, et je connais pas tout ce qu'il faut pour finir...
    Pour charger l'object document, dans l'activeX il y a pas mal d'exemple sur le forum

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim IE as new internetexplorer,idoc as htmldocument
    IE.navigate url
    set idoc=ie.document

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 72
    Points : 123
    Points
    123
    Par défaut
    je te remercie pour les réponses.

    Cela ne fonctionne pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dim IE as new internetexplorer
    La classe internetexplorer n'est par reconnu... dois me manquer une référence à une DLL ou un truc du genre non ?

    Je rapelle que je ne suis pas en VB.net mais ne VB tout court

    Me parait bizarre quand même que j'en bave autant pour trouver de la doc.

    Sur le forume j'ai pas vu d'exemple justement, c'est pour cela que j'ai posté... j'ai dut mal cherché

    Merci

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 72
    Points : 123
    Points
    123
    Par défaut
    au passage, j'ai voulu ajouter un référence à mshtml.dll et ca passe pas... seule mshtml.tlb peut s'ajouter au projet...

    Et comme je pense naturellement que c'est la DLL qu'il faut insérer...

  7. #7
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Oui, mshtml.tlb pour la gestion du DOM et shdocvw.dll (Microsoft Internet Controls) ou autre tel MozillaControl pour l'acquisition des données
    encore que pour ce dernier, je ne parviens pas à m'en servir correctement.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 72
    Points : 123
    Points
    123
    Par défaut
    Ok on s'approche du but
    Il manquait donc une référence à shdocvw.dll

    Maintenant j'ai bien l'objet mais j'ai une erreur à :
    myVar = obj.Document.getElementsByTagName("param")(0).Value

    "Variable objet ou variable bloc Width non définie"

    Ca me parle pas moi...

    En tout cas, je te remercie, ca approche

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 72
    Points : 123
    Points
    123
    Par défaut
    Autre soucis... on dirait que le fait de demander à mon activeX de lire l'url réinstancie l'activex... et donc ca boucle...

    Une idée ?

    Bon sang, je suis pas fan des activeX moi

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 72
    Points : 123
    Points
    123
    Par défaut
    Bon, j'en ai ma claque...
    En fait, en mode debug, je vois mes paramètres qui se chargent corrécement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim gsDea_id As String
     
    Private Sub UserControl_ReadProperties(PB As PropertyBag)
        gsDea_id = PB.ReadProperty("dea_id")
        MsgBox "Lecture du paramètre: " & gsDea_id
    End Sub
    J'ai bien le MsgBox et tout...

    Mais voilà, sitot que je met la balise PARAM, le controle n'apparait plus et j'ai une belle alerte de IE qui me dit qu'un contrôle activeX pourrait faire des choses pas très catholiques.

    En bref, le controle lit parfaitement bien mon param, mais plante derrière...

    Je vire la balise, ca fonctionne...
    C'est bel et bien un pb IE et non pas de mon controle... j'en ai le coeur net !

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 72
    Points : 123
    Points
    123
    Par défaut
    On va dire que j'ai résolu le soucis pour mon cas...
    En fait, mon activeX devait simplement instancié une DLL et lancer des fonctions de celle-ci.

    Je n'ai pas besoin d'afficher le contrôle (y'a rien à afficher en fait) donc j'ai placé le code dans la procédure UserControl_ReadProperties.

    Mes fonctions de la DLL sont bien utilisées, et ensuite tant pis... du moment que ca passe...

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

Discussions similaires

  1. les applets et l'utilisation Balise /<param/>
    Par bilred dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 08/09/2008, 23h22
  2. ActiveX et les Handle
    Par waldo2188 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 16/02/2005, 10h29
  3. [//TODO] Comment voir les balises TODO dans les problemes?
    Par romain3395 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 06/12/2004, 09h53
  4. [Eclipse 3.01]et les balises TODO ?
    Par Pill_S dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 18/11/2004, 19h56
  5. [Documentation][XSLT][XSLFO]Les balises xslfo
    Par Lydiane dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 14/08/2002, 12h31

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