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

Langage Delphi Discussion :

creer un TTreeNodes "virtuel"


Sujet :

Langage Delphi

  1. #1
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut creer un TTreeNodes "virtuel"
    Bonjour
    Je cherche un moyen de gérer une hiérarchie arborescente d'éléments, mais non visuelle
    J'ai bien pensé à une variable de type tableau, mais ça ne correspond pas à ce que je veux faire
    C'est là que je me suis dit qu'un TTreeNodes ferait l'affaire mais apparement, on ne peut pas en créer une instance sans owner visuel de type TTreeView
    Si qqn a une piste
    Choisir, c'est renoncer...

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    et bien tu n'as plus qu'à tout code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    type
      TNode = class
       private
        FParent: TNode;
        FChilds: TList; // of TNode ... si nécessaire
      public
        constructor Create;
        destructor Destroy; override;
        function Add: TNode;
        procedure AddChild(AChild: TNode);
        ...
      end;
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut
    Damned !
    Je ne me sens pas assez balaise pour faire ce genre de truc
    Y'aurait pas plutôt moyen d'hériter une nouvelle classe de TTreeNode, et de l'affranchir de son propriétaire visuel ?
    Bah sans doute que non, vu que la classe ancêtre TTreeNode exige un owner TTreeView
    Choisir, c'est renoncer...

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par OutOfRange Voir le message
    Damned !
    Je ne me sens pas assez balaise pour faire ce genre de truc
    Y'aurait pas plutôt moyen d'hériter une nouvelle classe de TTreeNode, et de l'affranchir de son propriétaire visuel ?
    Bah sans doute que non, vu que la classe ancêtre TTreeNode exige un owner TTreeView
    euh...en quoi est-ce compliqué ?!

    tu dois juste déterminer comment tu veux accéder aux noeuds pour choisir la structure à appliquer.

    - Node.Childs[Index] (besoin d'une liste)
    - Node.First, Node.Next (liste chaînée)
    - Node.Prev (double liste chaînée)
    - pouvoir créer des noeuds personnalisés ou les mêmes à tous les niveaux

    personnellement j'ai souvent remplacé le TTreeView par un TListBox en VirtualOwnerDraw attaché à une arborescence d'objets maison, ça marche vachement bien
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

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