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.
Version imprimable
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.
Lit ma Signature
Sinon fouille la dedans, c'est de l'utilisation basique
Code:
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;
Salut :)
L'idéal serait plutot que tu nous dises où tu bloques. On pourrait mieux t'aider de cette façon ;)