On Thu, 2006-03-09 at 15:05 +0100, Lepidosteus wrote:
> Thanks, really looking forward to it !
All right. The following code works. Place a TTreeView on a Form and add
items to it. Use the following code:
var
SleepNode: TTreeNode; // To store the dragged node.
procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y:
Integer;
State: TDragState; var Accept: Boolean);
var
HT : THitTests;
begin
Accept := False;
HT := TreeView1.GetHitTestInfoAt(X, Y);
if (htOnItem in HT) or (htOnButton in HT) or (htOnindent in HT) then
begin
Accept := True;
end;
end;
procedure TForm1.TreeView1StartDrag(Sender: TObject; DragObject:
TDragObject);
begin
SleepNode := TreeView1.Selected;
end;
procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y:
Integer);
var
OntvangNode : TTreeNode;
HT : THitTests;
begin
OntvangNode := nil;
HT := TreeView1.GetHitTestInfoAt(X, Y);
if (htOnItem in HT) or (htOnButton in HT) or (htOnindent in HT) then
begin
OntvangNode := TreeView1.GetNodeAT(X, Y);
end;
if (OntvangNode <> nil) and (SleepNode <> nil) then begin
SleepNode.MoveTo(OntvangNode, naAddChild);
end;
SleepNode := nil;
end;
I had this code in an old Delphi project, pasted it in my Lazarus
project and it worked out of the box :)
Matthijs
--
Matthijs Willemstein <[EMAIL PROTECTED]>
_________________________________________________________________
To unsubscribe: mail [EMAIL PROTECTED] with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives