Moinsen,
ich hab mein Projekt vor kurzem nun zu XE2 portiert, nach einigen schwierigkeiten mit Komponenten funktioniert nun alles. Nun ist mir aufgefallen das das Drag'n'Drop der VirtualTreeList nicht mehr funktioniert.. Der Node den ich verschiebe verschindet danach einfach...
hier der wichtige Codeteil:
Delphi-Quellcode:
procedure TfrmMain.treeDragDrop(Sender: TBaseVirtualTree; Source: TObject;
DataObject: IDataObject; Formats: TFormatArray; Shift: TShiftState;
Pt: TPoint; var Effect: Integer; Mode: TDropMode);
var
n: PVirtualnode;
begin
if assigned(DragNode) then
begin
n := Tree.GetNodeAt(pt.X, pt.Y);
if N<>nil then
begin
Tree.MoveTo(DragNode, N, TVTNodeattachMode.amAddChildLast, false);
UpdateKinds;
end;
end;
end;
procedure TfrmMain.treeDragOver(Sender: TBaseVirtualTree; Source: TObject;
Shift: TShiftState; State: TDragState; Pt: TPoint; Mode: TDropMode;
var Effect: Integer; var Accept: Boolean);
var
n: PVirtualNode;
begin
Accept := false;
if DragNode <> SceneNode then
if DragNode <> FixturesNode then
if DragNode <> ProjectNode then
if Source is TVirtualStringTree then
begin
n := tree.GetNodeAt(pt.X, pt.Y);
if n<>dragNode then
if IsFixtureBuilder then
Accept := true
else
begin
if not Tree.HasAsParent(n, FixturesNode) then
if n <> FixturesNode then
Accept := true;
end;
end;
end;