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

JavaScript Discussion :

centrer mon texte dans le rectangle


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut centrer mon texte dans le rectangle
    bonjour,

    je voudrais afficher du texte de couleur sur un fond. les couleurs seront choisie par les utilisateurs.
    Le texte s'affiche et change de couleur, mais la couleur de fond ne s'affiche pas!!!
    j'aurai besoin d'aide svp


    voici mon code :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
     /******************************************************************************
    * Textback Class
    ******************************************************************************/
     
    Textback.prototype = new DynamicComponent();
    Textback.parent = DynamicComponent.prototype;
    Textback.prototype.constructor = Textback;
     
    /******************************************************************************
    * Constructor
    ******************************************************************************/
    function Textback()
    {
    }
     
    /******************************************************************************
    * Initialize object
    * svgId -> Id of SVG node
    * objectName -> global variable name of the object
    ******************************************************************************/
    Textback.prototype.init = function(svgId, objectName)
    {
        Textback.parent.init.call(this, svgId, objectName, false);
        this.m_SizeFont = GetVisioPropAsInt(this.m_SvgNode, "FontSize");   
     
        removeAllChildExceptNodeName(this.m_SvgNode, "text");
        this.m_txtParentElem = getChildNodeFromName(this.m_SvgNode, "text");
        removeAllChild(this.m_txtParentElem);
        this.m_txtElem = createTextNode(this.m_txtParentElem, "");
    }
     
    /******************************************************************************
    * Callback for refresh event
    ******************************************************************************/
    Textback.prototype.OnRefresh = function()
    {
        // Get the value
        var value = this.m_arrayValueDefinition[0].getValue();				
        var coltext = colortext;
        var red = Math.round((coltext & 0x000000FF) >> 0);
        var green = Math.round((coltext & 0x0000FF00) >> 8);
        var blue = Math.round((coltext & 0x00FF0000) >> 16);
        var fill = "fill:rgb("+ red +","+ green+","+blue+")";
     
        var size = "font-size:"+this.m_SizeFont;
        var fontType = "font-family:Arial Unicode MS"
        this.m_txtParentElem.setAttribute("style", fill+";"+size+";"+fontType);
     
     
        var colback = colorback;
        var red = Math.round((colback & 0x000000FF) >> 0);
        var green = Math.round((colback & 0x0000FF00) >> 8);
        var blue = Math.round((colback & 0x00FF0000) >> 16);
        var back = "back:rgb("+ red +","+ green+","+blue+")";
     
        this.m_txtParentElem.style.background="back";
     
     
     
        // Change text value to reflect the read value
        var st = value;
        this.m_txtElem.nodeValue = st;
    }

    le PB vien de cette ligne de code :

    this.m_txtParentElem.style.background="back";

    mais comment la modifier???
    merci d'avance pour votre aide

  2. #2
    Membre éclairé Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Points : 718
    Points
    718
    Par défaut
    salut !
    et si tu enlevais les guillemets?

    a plus

  3. #3
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut
    bonjour,

    je vien d'essayer sans les guillemets mais toujours pas de couleur de fond...

    a votre avis cela peu venir de la declaration du texte??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        removeAllChildExceptNodeName(this.m_SvgNode, "text");
        this.m_txtParentElem = getChildNodeFromName(this.m_SvgNode, "text");
        removeAllChild(this.m_txtParentElem);
        this.m_txtElem = createTextNode(this.m_txtParentElem, "");
    quelqu'un a des idées??

    merci

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var back = "rgb("+ red +","+ green+","+blue+")";
    this.m_txtParentElem.style.backgroundColor=back;


    A+

  5. #5
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut
    Re bonjour,

    cela ne fonctionne toujours pas!!!
    J'ai l'impresion que sa doit etre dans la declaration

    j'espere que vous avez encore des idéés
    merci

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    le code d'Ebzz m'a pourtant l'air plus que correct ... peut on en voir l'implémentation ?

  7. #7
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut
    l'implementtation c'est a dire le code??

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
     
    /******************************************************************************
    * Textback Class
    ******************************************************************************/
     
    Textback.prototype = new DynamicComponent();
    Textback.parent = DynamicComponent.prototype;
    Textback.prototype.constructor = Textback;
     
     
     
    /******************************************************************************
    * Constructor
    ******************************************************************************/
    function Textback()
    {
    }
     
    /******************************************************************************
    * Initialize object
    * svgId -> Id of SVG node
    * objectName -> global variable name of the object
    ******************************************************************************/
    Textback.prototype.init = function(svgId, objectName)
    {
        Textback.parent.init.call(this, svgId, objectName, false);
        this.m_SizeFont = GetVisioPropAsInt(this.m_SvgNode, "FontSize");   
     
     //   removeAllChildExceptNodeName(this.m_SvgNode, "text");
        this.m_txtParentElem = getChildNodeFromName(this.m_SvgNode, "text");
     
        // get "rect" elem
        this.m_rectElem = getChildNodeFromName(this.m_SvgNode, "rect");
     
        removeAllChild(this.m_txtParentElem);
        this.m_txtElem = createTextNode(this.m_txtParentElem, "");
     
     
    }
     
     
     
     
    /******************************************************************************
    * Callback for refresh event
    ******************************************************************************/
    Textback.prototype.OnRefresh = function()
    {
        // Get the value
        var value = this.m_arrayValueDefinition[0].getValue();				
        var coltext = colortext;
        var red = Math.round((coltext & 0x000000FF) >> 0);
        var green = Math.round((coltext & 0x0000FF00) >> 8);
        var blue = Math.round((coltext & 0x00FF0000) >> 16);
        var fill = "fill:rgb("+ red +","+ green+","+blue+")";
     
     
        var size = "font-size:"+this.m_SizeFont;
        var fontType = "font-family:Arial Unicode MS"
        this.m_txtParentElem.setAttribute("style", fill+";"+size+";"+fontType);
     
     
        var colback = colorback;
        red = Math.round((colback & 0x000000FF) >> 0);
        green = Math.round((colback & 0x0000FF00) >> 8);
        blue = Math.round((colback & 0x00FF0000) >> 16);
        var back = "rgb("+ red +","+ green+","+blue+")";
     
    this.m_rectElem.style.backgroundColor = back;
     
     
        // Change text value to reflect the read value
        var st = value;
        this.m_txtElem.nodeValue = st;
    }
    merci

  8. #8
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    l'implementtation c'est a dire le code??
    le code complet de ta page . . .

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var colback = colorback;
        red = Math.round((colback & 0x000000FF) >> 0);
        green = Math.round((colback & 0x0000FF00) >> 8);
        blue = Math.round((colback & 0x00FF0000) >> 16);
    alert(red +  ',' + blue +',' + green);
        var back = "rgb("+ red +","+ green+","+blue+")";
    là il te dit quoi ?


    sinon essaye de lui attribuer la couleur après insertion dans la page ?

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Testé et approuvé par SpacFrog :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="document.body.style.backgroundColor='rgb(201,10,251)';">

  11. #11
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut
    bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alert(red +  ',' + blue +',' + green);  m'achiche ceci 122,90,203
    Est ce que vous pouvez m'expliquer ce code (desolé j'ai pascompris):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onload="document.body.style.backgroundColor='rgb(201,10,251)';"
    je l'ai inserer a la place de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.m_rectElem.style.backgroundColor = back;
    mais j'ai pas compris.

    merci

  12. #12
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut
    merci a tous pour vos reponse.
    voici le code qui fonctionnepour cela

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    /*********************************************************
    * Textback Class
    ********************************************************/
     
    Textback.prototype = new DynamicComponent();
    Textback.parent = DynamicComponent.prototype;
    Textback.prototype.constructor = Textback;
     
    /*********************************************************
    * Constructor
    *********************************************************/
    function Textback()
    {
    }
    /*********************************************************
    * Initialize object
    * svgId -> Id of SVG node
    * objectName -> global variable name of the object
    *******************************************************/
    Textback.prototype.init = function(svgId, objectName)
    {
        Textback.parent.init.call(this, svgId, objectName, false);
        this.m_SizeFont = GetVisioPropAsInt(this.m_SvgNode, "FontSize");   
     
     //   removeAllChildExceptNodeName(this.m_SvgNode, "text");
        this.m_txtParentElem = getChildNodeFromName(this.m_SvgNode, "text");
     
        // get "rect" elem
        this.m_rectElem = getChildNodeFromName(this.m_SvgNode, "rect");
     
        removeAllChild(this.m_txtParentElem);
        this.m_txtElem = createTextNode(this.m_txtParentElem, "");
    }
     
    /********************************************************
    * Callback for refresh event
    *********************************************************/
    Textback.prototype.OnRefresh = function()
    {
        // Get the value
        var value = this.m_arrayValueDefinition[0].getValue();				
        var coltext = colortext;
        var red = Math.round((coltext & 0x000000FF) >> 0);
        var green = Math.round((coltext & 0x0000FF00) >> 8);
        var blue = Math.round((coltext & 0x00FF0000) >> 16);
        var fill = "fill:rgb("+ red +","+ green+","+blue+")";
     
        var size = "font-size:"+this.m_SizeFont;
        var fontType = "font-family:Arial Unicode MS"
        this.m_txtParentElem.setAttribute("style", fill+";"+size+";"+fontType);
     
        var colback = colorback;
        red = Math.round((colback & 0x000000FF) >> 0);
        green = Math.round((colback & 0x0000FF00) >> 8);
        blue = Math.round((colback & 0x00FF0000) >> 16);
        var back = "fill:rgb("+ red +","+ green+","+blue+")";
     
        var colcontour = colorcontour;
        red = Math.round((colcontour & 0x000000FF) >> 0);
        green = Math.round((colcontour & 0x0000FF00) >> 8);
        blue = Math.round((colcontour & 0x00FF0000) >> 16);
        var contour = "stroke:rgb("+ red +","+ green+","+blue+")";
     
        this.m_rectElem.setAttribute("style", back+ "; contour");
     
        // Change text value to reflect the read value
        var st = value;
        this.m_txtElem.nodeValue = st;
    }

  13. #13
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    cette ligen de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onload="document.body.style.backgroundColor='rgb(201,10,251)';"
    c'est juste pour te montrer la syntaxe d'une modification dynamique de backroundColor en rgb par javascript...
    donc pas à mettre dans ton code


    Que le alert te retourne les trois nombres et plutot bon signe ! c'étauit juste pour vérifier les valeurs que tu donnais à ton RGB ...

    Le souci provient à mon avis de la compatibilité entre javascript et ton truc de fill du svg .. !!

    Il faut passer par svg:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     var fill = "fill:rgb("+ red +","+ green+","+blue+")";
    et pas par le DOM avec style.backgroundColor

  14. #14
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut centrer le texte dans le rectangle
    bonjour

    maitenance que les couleur fonctionnent, et que le texte s'affiche correctement, je voudrai centrer mon texte dans le rectangle.

    par contre la je n'est aucune idée sur la question.
    quelqu'un pour me suggerer une fonction?

    merci

  15. #15
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    à priori ça ne relève toujours pas de javascritp mais d'une syntaxe spécifique à svg ...

    voilà ce qu'en dit google :


  16. #16
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut
    merci pour ta solution elle fonctionne trop bien

  17. #17
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Et dire que je ne connais rien à svg !!!!

    il y a un truc qui s'appelle google et qui donne plein de réponses quand on se donne la peine de l'interroger ...

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

Discussions similaires

  1. Centrer un texte dans une page
    Par Samanta dans le forum Mise en forme
    Réponses: 5
    Dernier message: 20/09/2010, 22h30
  2. Centrer le texte dans une TStringGrid
    Par Rodrigue dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/06/2004, 11h01
  3. [MFC]Ecrire du texte dans un rectangle
    Par zaz16 dans le forum MFC
    Réponses: 8
    Dernier message: 29/07/2003, 10h31
  4. Comment centrer un Texte dans un rectangle ...
    Par Djedjeridoo dans le forum Composants VCL
    Réponses: 3
    Dernier message: 16/06/2003, 21h56
  5. Centrer un texte dans un string Grid
    Par christine dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/10/2002, 22h33

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