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 :

Besoin de docs sur TTreeview


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 10
    Par défaut Besoin de docs sur TTreeview
    Bonjour,

    J'aurais besoin de liens vers des documentations expliquant l'utilisation
    des TTreeview et des TTreeNode.

    Toute sorte de code serait utile aussi.
    Merci.

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 093
    Par défaut
    Lit ma Signature

    Sinon fouille la dedans, c'est de l'utilisation basique

    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
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    // -----------------------------------------------------------------------------
    //                                                                             -
    // -----------------------------------------------------------------------------
    var
       MouseNode: TTreeNode = nil;
       CompteurFrere: Integer = 0;
       CompteurEnfant: Integer = 0;
     
    procedure TFrmTestDivers.PopupMenuTreePopup(Sender: TObject);
    var
       CursorPos: TPoint;
    begin
         GetCursorPos(CursorPos); // Mouse.CursorPos n'existe pas !
         CursorPos := TreeView.ScreenToClient(CursorPos);
         MouseNode:= TreeView.GetNodeAt(CursorPos.X , CursorPos.Y);
         TreeView.Selected := MouseNode;
    end;
     
    procedure TFrmTestDivers.MINouveauClick(Sender: TObject);
    begin
         Inc(CompteurFrere);
         if Assigned(MouseNode) then begin
            TreeView.Items.Add(MouseNode, 'Frère N°'+IntToStr(CompteurFrere) + ' de ' + MouseNode.Text );
         end else begin
            TreeView.Items.Add(MouseNode, 'Frère N°'+IntToStr(CompteurFrere));
         end;
    end;
     
    procedure TFrmTestDivers.MIAjouterClick(Sender: TObject);
    begin
         if Assigned(MouseNode) then begin
            Inc(CompteurEnfant);
            TreeView.Items.AddChild(MouseNode, 'Enfant N° '+IntToStr(CompteurEnfant) + ' de ' + MouseNode.Text );
         end;
    end;
     
    procedure TFrmTestDivers.MISupprimerClick(Sender: TObject);
    begin
         if Assigned(MouseNode) then begin
            TreeView.Items.Delete(MouseNode);
         end;
    end;
     
    procedure InsertTreeViewLevel(TreeNodes: TTreeNodes; Parent: TTreeNode; S: string);
    var
      Nodes: TStringList;
      InsertNode: TTreeNode;
      I: Integer;
    begin
      Nodes := TStringList.Create();
      try
        for I := Parent.Count - 1 downto 0 do
        begin
          Nodes.AddObject(Parent.Item[I].Text, Parent.Item[I].Data);
          Parent.Item[I].Delete();
        end;
     
        InsertNode := TreeNodes.AddChild(Parent, S);
        for I := Nodes.Count - 1 downto 0 do
        begin
          TreeNodes.AddChildObject(InsertNode, Nodes[I], Nodes.Objects[I]);
        end;
      finally
        Nodes.Free();
      end;
    end;
     
    procedure TFrmTestDivers.MIInsererNiveauClick(Sender: TObject);
    begin
      if Assigned(MouseNode) then
        InsertTreeViewLevel(TreeView.Items, MouseNode, 'Level');
    end;
     
     
    procedure TFrmTestDivers.MIRenameClick(Sender: TObject);
     
      procedure RenameChildNode(ParentNode: TTreeNode);
      var
        iNode: Integer;
      begin
        for iNode := 0 to ParentNode.Count - 1 do
        begin
          ParentNode.Item[iNode].Text := Format('%s - Child Node %d', [ParentNode.Item[iNode].Text, iNode]);
          RenameChildNode(ParentNode.Item[iNode]);
        end;
      end;
     
    begin
         if Assigned(MouseNode) then begin
            RenameChildNode(MouseNode);
         end;
    end;
     
    procedure TFrmTestDivers.TreeViewDragDrop(Sender, Source: TObject; X,
      Y: Integer);
    var
      DestNode: TTreeNode;
      DragNode: TTreeNode;
    begin
         DestNode := TreeView.GetNodeAt(X , Y);
         if Assigned(DestNode) then begin
            if (Source is TTreeView) and (TTreeView(Source).Name = TreeView.Name) then begin
               DragNode := TreeView.Selected;
               if GetAsyncKeyState(VK_SHIFT) <> 0 then begin
                  if DragNode.Parent = nil then begin
                     TreeView.Items.Add(nil, DestNode.Text + ' Inversé');
                  end else begin
                      TreeView.Items.AddChild(DragNode.Parent, DestNode.Text + ' Inversé');
                  end;
                  if DestNode.Parent = nil then begin
                     TreeView.Items.Add(nil, DragNode.Text + ' Inversé');
                  end else begin
                      TreeView.Items.AddChild(DestNode.Parent, DragNode.Text + ' Inversé');
                  end;
                  TreeView.Items.Delete(DragNode);
                  TreeView.Items.Delete(DestNode);
     
               end else begin
                   if GetAsyncKeyState(VK_CONTROL) <> 0 then begin
                      TreeView.Items.AddChild(DestNode, DragNode.Text + ' Recopié');
                   end else begin
                      TreeView.Items.AddChild(DestNode, DragNode.Text + ' Déplacé');
                      TreeView.Items.Delete(DragNode);
                   end;
               end;
            end;
         end;
    end;
     
    procedure TFrmTestDivers.TreeViewDragOver(Sender, Source: TObject; X,
      Y: Integer; State: TDragState; var Accept: Boolean);
    var
       DestNode: TTreeNode;
       DragNode: TTreeNode;
    begin
         DestNode := TreeView.GetNodeAt(X , Y);
         DragNode := TreeView.Selected;
     
         Accept := not DragNode.HasAsParent(DestNode); 
     
         StatusBar1.SimpleText := 'Drag And Drop avec Déplacement';
         if GetAsyncKeyState(VK_CONTROL) <> 0 then begin
            StatusBar1.SimpleText := 'Drag And Drop avec Recopie';
         end;
         if GetAsyncKeyState(VK_SHIFT) <> 0 then begin
            StatusBar1.SimpleText := 'Drag And Drop avec Inversion';
         end;
    end;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    Salut
    L'idéal serait plutot que tu nous dises où tu bloques. On pourrait mieux t'aider de cette façon
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

Discussions similaires

  1. besoin de docs sur le C#
    Par halas86 dans le forum C#
    Réponses: 2
    Dernier message: 19/08/2010, 10h15
  2. Doc sur Debug de Ms-Dos
    Par gtr dans le forum Assembleur
    Réponses: 13
    Dernier message: 23/09/2003, 09h06
  3. recherche doc sur les courbe de bézier
    Par amaury pouly dans le forum OpenGL
    Réponses: 4
    Dernier message: 29/04/2003, 22h41
  4. Réponses: 4
    Dernier message: 27/03/2002, 11h03

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