Bonjour
j ai un treeview
dedans il y a ca
Titre 1
AAAA
BBBB
Titre 2
ABBB
BBBAA
CCCAA
Ou et comment coder pour faire du Drag And Drop pour emmener par Ex CCCAA dans Titre 1 ou vice versa
merci
Bonjour
j ai un treeview
dedans il y a ca
Titre 1
AAAA
BBBB
Titre 2
ABBB
BBBAA
CCCAA
Ou et comment coder pour faire du Drag And Drop pour emmener par Ex CCCAA dans Titre 1 ou vice versa
merci
dans les évènements DragDrop et DragOver du treeview
voici un code que j'ai fait voilà des années, il doit y avoir des chose à enlever
dans la 1° procedure mais ça te donne un modèle
PS. me rappelle plus à quoi sert le THitTests ni d'où il vient
si tu ne t'en sors pas fais moi signe
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 procedure TAllNomen.TreeViewDragDrop(Sender, Source: TObject; X, Y: Integer); var AnItem : TTreeNode; AttachMode: TNodeAttachMode; HT: THitTests; begin if TreeView.Selected = nil then Exit; HT := TreeView.GetHitTestInfoAt(X, Y); AnItem := TreeView.GetNodeAt(X, Y); if (HT - [htOnItem, htOnIcon, htNowhere, htOnIndent] <> HT) then begin AttachMode:=naAdd; {défaut Ajout} if (htOnItem in HT) or (htOnIcon in HT) then AttachMode := naAddChild else if htNowhere in HT then AttachMode := naAdd else if htOnIndent in HT then AttachMode := naInsert; case AttachMode of naAddChild : if TBaseNivMatiere.Value<=Niveau then MessageDlg('Incohérence possible',mtWarning,[mbOk],0); else if TBaseNivMatiere.Value<Niveau then MessageDlg('Incohérence possible',mtWarning,[mbOk],0); end; TreeView.Selected.MoveTo(AnItem, AttachMode); end; end; procedure TAllNomen.TreeViewDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept:=(TreeView.Selected<>TreeView.GetNodeAt(X,Y)); end;
Merci
ca marche pour le déplacement mais 2 questions encore
je ne veux pouvoir poser que sur Titre 1 ou Titre 2 et pas ailleurs comment regler ca ?
A quel endroit je dois coder pour mettre a jour ma base ?
Personnellement, j'ai fait globalement la même chose comme ceci
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 procedure TfuiCensored.TreeViewCensoredCensoredDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); var SourceNode : TTreeNode; begin SourceNode := TreeViewCensoredCensored.Selected; Accept := (Source = Sender) and (Assigned(SourceNode) and (SourceNode.Level = 1)); end; procedure TfuiCensored.TreeViewCensoredCensoredDragDrop(Sender, Source: TObject; X, Y: Integer); var SourceNode, TargetNode: TTreeNode; SourceCensored: TObjectCensored; NodeText: string; NodeData: Pointer; begin TargetNode := TreeViewCensoredCensored.GetNodeAt(X, Y); SourceNode := TreeViewCensoredCensored.Selected; if Assigned(TargetNode) and Assigned(SourceNode) and (TargetNode.Level = 0) and (SourceNode.Level = 1) then begin if messagedlg('voulez vous modifier l''appartenance de cet Censored ?', mtconfirmation, [mbyes, mbno], -1) = mryes then begin ... NodeText := SourceNode.Text; NodeData := SourceNode.Data; TreeViewCensoredCensored.Items.Delete(SourceNode); TreeViewCensoredCensored.Items.AddChildObject(TargetNode, NodeText, NodeData).Selected := True; 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
Partager