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

Delphi Discussion :

Supprimer un TreeView


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 46
    Par défaut Supprimer un TreeView
    Bonjour
    Je planche depuis plusieurs heure sur un problème sans doute simple.
    J'ai un treeView avec des noeuds enfants (plein) qui viennent de ma table.
    Je voudrais supprimer un noeud et que cela supprime tout les noeuds qui lui sont liés dans la table.
    Si je le supprime simplement avec le TreeView, cela supprime également les noeuds enfants, mais je voudrais supprimer les noeuds qui lui sont liés aussi.
    Vous auriez une idée? Je pensais à sélectionné le nom du dernière enfant mais je n'ai pas trouvé le code pour.

    Image : http://prntscr.com/7qrcng
    Ma table : http://prntscr.com/7qrgfl

    Mon but : Supprimer les lignes Test et Version_1 qui sont des enfants et petits enfants de Notes, tout en supprimant Notes, mais je vois pas comment faire..
    (PS : J'arrive pas à mettre des images avec l'outils du forum, il bug pour moi et les écritures sont toutes superposés.. )

  2. #2
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 773
    Par défaut
    Pourtant cela me semble trivial. Moi je travaille en C++.

    Lorsque tu construis ton arbre, tu associes chaque nœud à son id via la propriété Data : documentation ici et en C++, il faut faire un cast.

    Et ensuite, avant la suppression d'un nœud, tu le parcours en supprimant de ta table tous les nœuds fils en récupérant les ids

    Pour parcourir un nœud, mais pas sûr à 100%:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      TTreeNode tmp_my_node = my_node; 
      while tmp_my_node <> nil do
      begin
    //  Need some action
        tmp_my_node := tmp_my_node.GetNext;
      end;
    Après il y a des optimisations possibles: fusionner le parcours et la suppression du noeud (qui va faire un autre parcours) et fusionner les requêtes de suppression dans la table (si c'est du SQL)

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 46
    Par défaut
    Effectivement, j'ai déjà essayé avec le getnext, mais ce qu'il me faudrait, c'est que cela s'arrête une fois le noeud fini car avec le getnext, cela me conduit à la prochaine ligne, ce qui me supprimera aussi la ligne suivant si je l'utilise. (Ligne qui n'appartient pas au GRAND noeud que je veux supprimer.

  4. #4
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 46
    Par défaut
    J'ai réussi merci, pour ce que ça intéresse, j'ai utilisé le level du treeview, je delete tout jusqu'à ce que le level du select à delete soit égale à celui du premier noeud à supprimer.

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

Discussions similaires

  1. [Toutes versions] Ccomment supprimer un TreeView créé à la volée ?
    Par colin2 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/03/2014, 09h23
  2. Supprimer des TreeViewer d'un EditorPart
    Par Dekdek3578 dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 13/08/2009, 11h14
  3. TreeView et menu contextuel...
    Par agh dans le forum Composants VCL
    Réponses: 6
    Dernier message: 06/04/2009, 12h23
  4. Supprimer des éléments dans une TreeView ?
    Par souch dans le forum Composants VCL
    Réponses: 4
    Dernier message: 16/09/2005, 12h20
  5. [Pointer]Treeview.Data
    Par rbag dans le forum Composants VCL
    Réponses: 7
    Dernier message: 31/08/2002, 01h44

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