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

Composants VCL Delphi Discussion :

Comment stocker une référence vers un TTreeNode ds un DFM ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre habitué Avatar de phplive
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 179
    Points : 150
    Points
    150
    Par défaut Comment stocker une référence vers un TTreeNode ds un DFM ?
    Bjr


    En mode conception, j'ai un composant personnalisé Schema de classe TSchema sur une fiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    TSchema = class(TComponant)
    private
      FTree : TTreeView;
     
      FXML : TStringList;
      procedure LoadTreeView(Tree : TTreeView);
    public
      property Tree : TTreeView read FTree;
      ...
     
    published
      property XML : TStringList read FXML write SetXML;
      ..
    end;

    Je charge le contenu du XML dans ma propriété Tree.
    Lors du chargement de chaque node je reconstruis les données associées.

    A des fins d'édition sous l'EDI, j'utilise un éditeur de propriété spécifique dans lequel j'affiche mon arbre.

    Ex code XML

    <tree>
    <item name="Premier" classname="TDemo" propname="Essai">
    <item name="La suite ..." classname="TSuite" propname="Suite">
    </item>
    </item>
    <item name="Suivant" classname="TSuivant" propname="">
    </tree>


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // Objet associé à chaque TTreeNode
    TNodeData = class(TObject)
    private
      FName : string;
      FPropName : string;
      FClassName : string;
    end;

    J'obtiens l'arbre suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    + Premier
    |    +------ La suite ...
    |
    + Suivant

    Dans le node "Premier" j'ai :
    TNodeData(Node.Data).FName = "Premier"
    TNodeData(Node.Data).FProName = "Essai"
    TNodeData(Node.Data).FClassName = "TDemo"

    Dans le node "La Suite ..." j'ai :
    TNodeData(Node.Data).FName = "La Suite ..."
    TNodeData(Node.Data).FProName = "Suite"
    TNodeData(Node.Data).FClassName = "TSuite"

    etc ...



    Maintenant sur ma fiche j'ai N composants qui référencent non seulement mon composant Schema mais aussi un TTreeNode précis de Schema.Tree


    Question comment faite pour stocker dans le dfm la référence au TTreeNode ?



    Merci
    @+
    Php
    @+
    Php

    D7 Enterprise - XP sp2
    The Truth is Out There

  2. #2
    Membre habitué Avatar de phplive
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 179
    Points : 150
    Points
    150
    Par défaut
    C'est pas vraiment résolu mais bon ...

    J'ai opté pour la solution suivante pas super géniale mais qui fonctionne :

    Dans l'arbre je conserve un compteur : un entier
    L'arbre attribut un ID unique à chaque noeud créé en incrémentant ce compteur.
    Dans le dfm j'enregistre cet ID avec les données de chaque noeud
    Lorsque je recharge l'arbre depuis le dfm je restaure l'ID de chaque noeud et je fixe la valeur du compteur avec le plus grand ID.

    Ca vaut ce que ca vaut ...

    Voilà


    @+
    Php
    @+
    Php

    D7 Enterprise - XP sp2
    The Truth is Out There

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

Discussions similaires

  1. Comment stocker une image dans une base de données sqlce ?
    Par ozeon dans le forum Développement
    Réponses: 3
    Dernier message: 11/07/2016, 20h13
  2. Réponses: 4
    Dernier message: 05/11/2007, 22h23
  3. [.config] Comment stocker une value : un texte multiligne ?
    Par Manralf dans le forum Framework .NET
    Réponses: 2
    Dernier message: 27/02/2006, 09h17
  4. Comment avoir une référence sur une Vue
    Par Philippe299 dans le forum MFC
    Réponses: 1
    Dernier message: 12/08/2005, 10h03

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