Author: Tomas Rutkauskas
Can someone tell me where I can look to get some help implementing scrolling while
a drag operation is in effect.
Answer:
1 2 procedure TfrmajNewsEditor.ajNewsTreeViewDragOver(Sender, Source: TObject;
3 X, Y: Integer; State: TDragState; var Accept: boolean);
4 const5 cScrollOffset = 5;
6 var7 Node: TTreeNode;
8 begin9 Accept := true; {Always accept}10 Node := fajNewsTreeView.TopItem; {Get the top node as a reference}11 if (y < cScrollOffset) then{Are we dragging at the top of the treeview?}12 SendMessage(fajNewsTreeView.Handle, WM_VSCROLL, SB_LINEUP, 0)
13 {We'll scroll the treeview}14 elseif (y > fajNewsTreeView.Height - cScrollOffset) then{Dragging at the 15 bottom?}16 SendMessage(fajNewsTreeView.Handle, WM_VSCROLL, SB_LINEDOWN, 0); {Do a scroll}17 if (Node <> fajNewsTreeView.TopItem) then{Did we scroll? We'll need to redraw.}18 fajNewsTreeView.Refresh; {The treeview gets in a mess if we don't.}19 end;