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 :

Heritage enfant -> parent


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 25
    Points
    25
    Par défaut Heritage enfant -> parent
    Bonjour,

    Voila, comme beaucoup, j'imagine, j'ai un petit probleme que je n'arrive pas à solutionner: exemple basique (désolé pour la police j'ai reduits au max)

    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
    77
    78
    79
    
    
    function createModule()
     {
        ...
        ...
        this.iCountModule  = 0;
        this.iCurrentIndex = 0;
        this.arrayIndex    = new Array(MAX_COUNT);
        this.arrayName    = new Array(MAX_COUNT);
        this.newWindow   = new Array(MAX_COUNT);
        this.lastError     = "";
    
        this.getIndex = function getIndex(szName)
        {
           var bfWork = true;
           var iIndex = -1;
    
           if (szName == "") { this.lastError = "Need a name !"; return -1; }
    
           for (var i=0; i<MAX_COUNT & bfWork; i++)
           {
              if ((this.arrayIndex[i] == 1) && (this.arrayName[i].indexOf(szName) == 0 ) )
              {
                 iIndex = i;
                 bfWork = false;
              }
           }
           if (bfWork) this.lastError = "("+szName+") Object not found !";
           return iIndex;
        }
    
        this.getName = function getName(iIndex)
        {
           var bfFound = false;
           var sName = new String();
    
           if (this.arrayIndex[iIndex] == 1)
           {
              sName = this.arrayName[iIndex];
              bfFound = true;
           }
         
           if (!bfFound) { this.lastError = "Can't find name, index "+iIndex+" : empty !"; return -1; }
           return sName;
        }
    
        this.addWindow = function addWindow(szName, iPosX, iPosY, iWidth, iHeight)
        {  
           var bfWork = true;
           var iIndex = -1;
    
           if (this.iCountModule >= MAX_COUNT) { this.lastError = "Not free space !"; return -1; }
           if (szName == "") { this.lastError = "Need a name !"; return -1; }
    
           function newWindow(szName, iPosX, iPosY, iWidth, iHeight)
           {       
              this.iCountModule++;
    
               // Cette manip ne fait que re-creer une instance mais moi j'ai besoin
               // de l'object en cours... 
               //
              this.constructor = createModule;
              this.inst = new this.constructor();
              this.constructor();
    
              
              // ---------- ICI ?
              alert(this.getName(0)); // Resultat: erreur retournee du type n'existe pas (-1) alors que si... bref c'est lourd 
              // ---------- ICI ?
              
    
              delete(this.inst);    
              ...
              ...
              return this;
           }
    
    Voila donc mon probleme est le suivant: Dans un objet enfant comment recuperer les Datas de son parent? Je tiens à préciser que je recupere sans probleme l'instance -soit la class- de l'objet mais pas du tout ses valeurs...

    J'ai bien pensé à l'adresse via pointeur mais en JS ca n'existe pas donc je bloque si vous aviez une idée ca m'arrangerait

    l'exemple pour info marche très bien il incrémente ou décremente, gere les erreurs etc... selon les besoins mais lorsqu'il s'agit d'aller voir quelles donnees intègre le pere (soit : un peu comme this.parent.iValue) ca marche pas (

    S'entant je ne me serais pas permis de poster sans avoir chercher mais je n'ai rien trouvé de positif concernant ce probleme aussi merci d'avance si l'un de vous avait la solution et ce bien sur sans valeur dites 'global'. Aie desolé j'abuse la

    @+ )

  2. #2
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Ce n'est pas possible... sans intervention humaine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.PropertyObject.parentObject=this;
    Ainsi pour le faire en mode auto :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Tout à la fin de la fonction
    for (key in this) {
      this[key].parentObject=this;
    }
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    deja: merci d'avoir répondu et...

    Ton code bien que clean alterne (suivant differentes intégrations) dans le miens entre: undefined, Error reporting: not defined et j'ai même eu droit à une petite phrase sympatique: donnee protégée ou quelque chose de ce genre.
    (mon idee du fils interrogeant le parent serait-elle impossible?)
    Quand en revanche il provoque une reponse c'est juste les elements du 'this.enCours' qu'il retourne grrrr

    Bref je tourne en rond lol

    Ce serait si simple d'assigner une lValue = &object[0]... ou...

    trop tard pour plancher dessus ce soir en tout cas merci

  4. #4
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    càd que j'ai un code plutot complexe à la base mais simple d'utilisation qui rend ce genre de truc possible... Seulement j'ai pas envie d'en expliquer le fonctionnement (trop long)... en plus du fait que je le garde farouchement J'ai bien publié une version préliminaire mais elle est devenu obselète... en gros c'est l'objet qui se stocke lui-même et qui redéfinit ses fonctions pour qu'elles points vers sa redéfinition... mais à mon avis mon explication n'est pas claire
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par FremyCompany
    càd que j'ai un code plutot complexe à la base mais simple d'utilisation qui rend ce genre de truc possible... Seulement j'ai pas envie d'en expliquer le fonctionnement (trop long)... en plus du fait que je le garde farouchement J'ai bien publié une version préliminaire mais elle est devenu obselète... en gros c'est l'objet qui se stocke lui-même et qui redéfinit ses fonctions pour qu'elles points vers sa redéfinition... mais à mon avis mon explication n'est pas claire
    yep je crois que je vois..

    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
     
     
    global mainClass[MAX_CLASS];
     
    newClass
    {
       iIndexInc++;
       this.lValue = random(5000);
       ...
       ...
       mainClass[iIndexInc] = this;
     
       childClass(iIndex)
       {
          this.parentClass = mainClass[iIndex];
          this.parentClass.lValue;
          ...
          ...
       }
       return this;
    }
    Le probleme, s'il s'agit bien de ca, c'est que c'est ainsi que j'ai créé ma mainClass de façon à simuler une pile (push/pull) et que je veux (si c'est possible bien sur) eviter justement cette procédure dans le cadre des enfants...

    En plus c'est peut-etre même pas ce que tu avais en tête donc bon je verrais demain merci

    PS: au cas ou je mets pas encore le résolu

  6. #6
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Le principe est semblable au mien...
    Tu peux faire comme ca, cela devrait sufire...
    Par contre ta syntaxe m'étonne un peu
    ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    chid(index) {
       this.index=index
    }
    ?
    ...
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par FremyCompany
    Le principe est semblable au mien...
    Tu peux faire comme ca, cela devrait sufire...
    Par contre ta syntaxe m'étonne un peu
    ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    chid(index) {
       this.index=index
    }
    ?
    ...
    autant pour pour moi j'ai un brin schematisé

Discussions similaires

  1. Programmation Java pour les enfants, les parents et les grands-parents
    Par imaintsoanala dans le forum Général Java
    Réponses: 1
    Dernier message: 25/01/2011, 13h08
  2. [as 2]Atteindre une propriété enfant ou parent.
    Par NejNej dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 04/01/2010, 15h13
  3. Delete enfant avant parent
    Par Marcel Chabot dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/10/2008, 22h10
  4. TreeView : enfant ou parent selectionné ?
    Par LoicH dans le forum C++Builder
    Réponses: 7
    Dernier message: 31/08/2005, 23h13
  5. Enfant dans parent
    Par toctoc80 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/04/2004, 16h40

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