Using TreeNode.MoveTo(...) method sometimes does not work properly and raises an "Access Violation" exception.
mosttimes works and some time not.
Mosttimes 'Access Violation in module COMCTL32.DLL. Read of address FEEEFEFA' and program crash/freeze.
here is my full code i have single tree view with test data.
procedure TForm1.FormShow(Sender: TObject);
var
I, sectioncount: Integer;
parent, child: TTreeNode;
begin
sectioncount := 0;
for I := 0 to 19 do
begin
if I mod 5 = 0 then
begin
parent := TreeView1.Items.AddChild(nil, 'Section: ' + IntToStr(sectioncount));
Inc(sectioncount);
end;
child := TreeView1.Items.AddChild(parent, 'Child: ' + IntToStr(I));
end;
TreeView1.Items[0].Expand(True);
end;
procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
src, dst : TTreeNode;
I : Integer;
begin
dst := TreeView1.DropTarget;
for I := 0 to TreeView1.SelectionCount - 1 do
begin
src := TreeView1.Selections[I];
src.MoveTo(dst,naInsert);
end;
end;
procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept := true;
end;
i run a simple form in my XE5.
select three node in following order with control key to raise the AV error:-
first 'child 1' then 'child 2' then 'child 0' finally drag and drop node by selecting 'Child 0'
can anyone one solve this