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 :

Array et TTreenode


Sujet :

Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Animateur commercial
    Inscrit en
    Août 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Animateur commercial

    Informations forums :
    Inscription : Août 2011
    Messages : 47
    Points : 41
    Points
    41
    Par défaut Array et TTreenode
    Bonjour

    J'aimerais savoir s'il est possible d'utiliser un array of TTreenode ? Car je créer un treeview de manière automatique suivant les valeurs que je trouve.

    Pour après pouvoir l'utiliser dans un code du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Var
      Treenode : Array of TTreenode
     
    Treenode[i]:=Treeview.Items.add(nil,menu);
     
    //Puis
    treeview.Items.addchild(Treenode[i], sous_menu);

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    C'est une mauvaise idée, conserver un tableau mono-dimension pour accompagner ton arbre n'est que source de complexité !

    Quel est le vrai problème ?

  3. #3
    Membre du Club
    Homme Profil pro
    Animateur commercial
    Inscrit en
    Août 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Animateur commercial

    Informations forums :
    Inscription : Août 2011
    Messages : 47
    Points : 41
    Points
    41
    Par défaut
    En faite dans le treeview, je veux recréer un aperçu d'une clé du registre dans laquelle il y a peu y avoir beaucoup de sous clé et de sous clé à cette dernière, donc beaucoup de sous enfant.

    Donc pour la première sous clé, je n'avais pas de soucis mais pour la seconde j'ai plus de mal

    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
     
    for i2:=0 to Categorieslist.Count-1 do
      begin
        Reg1.OpenKeyReadOnly('\Emplacement registre\'+CategoriesList.Strings[i2]);
        Nom_menu:= Reg1.ReadString('Nom');
        Sous_menu:= Reg1.ReadString('Sous menu');
        Reg1.CloseKey;
     
        MyTreeNode:=TreeView1.Items.Add(nil, Nom_menu); //Création du noeud dans Treeview
        SubCatList.LineBreak := ';';
        SubCatList.Text := Sous_menu;
     
        for i3:=0 to SubCatList.Count-1 do
        begin
          Reg2.OpenKeyReadOnly('\Emplacement registre\'+SubCatList.Strings[i3]);
          Nom_Sous_menu:=Reg2.ReadString('Nom');
          Sous_menu:= Reg2.ReadString('Sous menu');
          Treeview1.Items.AddChild(MyTreeNode, Nom_Sous_menu);
          Reg2.CloseKey;
        end;
      end;

  4. #4
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Java/Delphi
    Inscrit en
    Mars 2010
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java/Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 698
    Points : 1 608
    Points
    1 608
    Billets dans le blog
    4
    Par défaut
    Utilise plutôt une fonction récursive pour remplir ton arbre depuis la clé principale, tu peux utiliser les exemples pour lister les sous dossier d'un dossier.

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    Même suggestion que retwas
    Quand j'étais apprenti en 1999, j'ai fait un tableau dynamique qui gérait la profondeur de l'arbre (j'ai divisé par 3 quand j'ai utilisé un tableau de 32 positions max)
    J'ai appris la récursivité à l'école, j'ai juste divisé le temps de parcours de la base de registre par 10

    Si tu veux, j'ai le code entier d'un Editeur de Base de Registre qui date de Win98 et NT4 en Delphi 5
    C'est bourré d'erreur, c'est vieux et un vrai bordel mais instructif

  6. #6
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 487
    Points : 3 120
    Points
    3 120
    Par défaut
    C'est bourré d'erreur, c'est vieux et un vrai bordel ...
    Arrête de t'auto-flageller ... j'y crois même pas

  7. #7
    Membre du Club
    Homme Profil pro
    Animateur commercial
    Inscrit en
    Août 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Animateur commercial

    Informations forums :
    Inscription : Août 2011
    Messages : 47
    Points : 41
    Points
    41
    Par défaut
    Merci pour toutes les infos, je vais regarder ce que je peux faire pour améliorer ma méthode

    Citation Envoyé par ShaiLeTroll Voir le message
    Si tu veux, j'ai le code entier d'un Editeur de Base de Registre qui date de Win98 et NT4 en Delphi 5
    C'est bourré d'erreur, c'est vieux et un vrai bordel mais instructif
    Il y a pas de soucis je suis preneur, cela me permettra d'apprendre un peu plus

  8. #8
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    Voici ce projet de l'an 2000 : ClearRegistre.rar

    Citation Envoyé par Papy214 Voir le message
    Arrête de t'auto-flageller ... j'y crois même pas
    Pourtant, je crois que je n'avais pas compris l'on pouvait modifier le HaveChild par exemple alors je faisais un nœud fantome
    Des parties, je n'ai pas réussi avec le TRegistry alors je suis passé par les API
    Si si crois-moi, on a tous débuté un jour, c'est sur qu'au bout de 6 mois, je trouvais les cours de C un peu léger par rapport à ce que je faisais au bureau, l'école ne m'a appris qu'une seule et unique notion : La Récursivité ... ah et MERISE, ouais trop utile vu l'absence de modélisation dans la plupart des boites où tout est urgent à coder pour hier

    EDIT : Waooh ça compile sans modif sur XE2 mais je ne sais pas si c'est partout au point avec le Char en ASM et les APIs

  9. #9
    Membre du Club
    Homme Profil pro
    Animateur commercial
    Inscrit en
    Août 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Animateur commercial

    Informations forums :
    Inscription : Août 2011
    Messages : 47
    Points : 41
    Points
    41
    Par défaut
    Merci beaucoup ShaiLeTroll pour tes sources, maintenant il reste juste à étudier un peu

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

Discussions similaires

  1. Modifier l'icone d'un TTreeNode sur click
    Par ramseb dans le forum Composants VCL
    Réponses: 6
    Dernier message: 06/08/2003, 13h55
  2. Erreur "size array"
    Par boobob dans le forum C
    Réponses: 3
    Dernier message: 06/08/2003, 10h18
  3. TStringList en array of string
    Par JediKerian dans le forum Langage
    Réponses: 2
    Dernier message: 20/03/2003, 15h37
  4. Réponses: 2
    Dernier message: 23/02/2003, 00h49
  5. passage en paramètre d'un array dynamique 2D
    Par Guigui_ dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2002, 19h47

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