Bonjour Mesdames Messieurs,
Avez-vous déjà eu ce genre de bizarrerie ?
En gros lorsque je fais un drag & drop sur mon TVirtualStringTree de bas en haut (si le node source est plus bas dans la liste que le node cible) les nodes ne bougent pas, à l'inverse de haut en bas ils switch, voici mon code:
Pris de ce lien http://stackoverflow.com/questions/8...odes-in-a-list
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 uses ActiveX; procedure TForm1.vt1DragOver(Sender: TBaseVirtualTree; Source: TObject; Shift: TShiftState; State: TDragState; Pt: TPoint; Mode: TDropMode; var Effect: Integer; var Accept: Boolean); begin Accept := (Source = Sender); end; procedure TForm1.vt1DragDrop(Sender: TBaseVirtualTree; Source: TObject; DataObject: IDataObject; Formats: TFormatArray; Shift: TShiftState; Pt: TPoint; var Effect: Integer; Mode: TDropMode); var pSource, pTarget: PVirtualNode; attMode: TVTNodeAttachMode; begin pSource := TVirtualStringTree(Source).FocusedNode; pTarget := Sender.DropTargetNode; case Mode of dmNowhere: attMode := amNoWhere; dmAbove: attMode := amInsertBefore; dmOnNode, dmBelow: attMode := amInsertAfter; end; Sender.MoveTo(pSource, pTarget, attMode, False); end; Also do not forget to set toAutoDeleteMoveNodes to False in TreeOptions.AutoOptions.
merci pour vos infos
Partager