PB de DragDrop dans un treeview
Bonjour
j ai un treeview
AAAAAAAAA
aaa11
aaa22
BBBBBBBBB
bbb11
bbb22
avec mon code ci joint ca marche mais le voudrais par exemple poser bbb11 a n importe quel endroit de AAAAA mais qui soit affecté a AAAAA, car si je le pose sur aaa11, il deviens sous noeud de aaa11, or je voudrais qu il soit toujours attaché au noeud maitre
Et aussi je voudrais qu il soit impossible de le poser sur le noeud auquel on viens de le prendre
merci
voici mon code
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
| procedure TFActesListe.tvActeDragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
var
SourceNode: TTreeNode;
begin
SourceNode := tvActe.Selected;
Accept := ((tvActe.Selected <> tvActe.GetNodeAt(X, Y)) and (SourceNode.Level = 1));
end;
procedure TFActesListe.tvActeDragDrop(Sender, Source: TObject; X,
Y: Integer);
var
AnItem: TTreeNode;
AttachMode: TNodeAttachMode;
HT: THitTests;
begin
if tvActe.Selected = nil then Exit;
HT := tvActe.GetHitTestInfoAt(X, Y);
AnItem := tvActe.GetNodeAt(X, Y);
if AnItem.Level = 0 then
if MyMessageDlg('Confirmez-vous le déplacement de cet acte ?' + #13#10 + #13#10 +
'dans ' + AnItem.Text, mtWarning, [mbYes, mbNo], 0) = mrYes then
begin
begin
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;
tvActe.Selected.MoveTo(AnItem, AttachMode);
end;
end;
end;
end; |