我有以下问题。
我的表单上有一个页面控件,我想激活某个标签页,然后拖放(从资源管理器中)到标签页上的滚动条。 (每个标签页都有一个滚动框)
当你鼠标移动到页面控件上时,我有代码来激活选项卡。 (请参阅下面的代码)问题是,当我从资源管理器中拖动文件时,当我在拖动时将鼠标移动/鼠标移动到页面控件上时,鼠标移动永远不会触发。
还尝试设置DragAcceptFiles(pagecontrol.Handle,true);
,但这也无济于事。
procedure TForm2.PageControlMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var
tabindex : Integer;
begin
tabindex := PageControl.IndexOfTabAt( X, Y );
PageControl.ActivePageIndex := tabindex;
end;
任何想法/解决方案的男人和女孩?
感谢。
SoulBlade
答案 0 :(得分:4)
使用DragAcceptFiles()
,您无法获得必要的信息,只有当数据最终被丢弃到放置目标时,才会将WM_DROPFILES
消息发送到使用DragAcceptFiles()
注册的窗口句柄。
如果使用OLE拖放,您将获得更多控制权。 Anders Melander的Drag and Drop Component Suite for Delphi在一组易于安装的组件中实现了所有功能。使用任何放置目标对象,将其Target
属性设置为要放弃的页面控件,并使用其OnDragOver
事件激活正确的标签页。