Delphi中如何实现拖曳?

happyZhouL 2000-02-25 02:13:00
在DELPHI,实现的具有拖曳功能的panel,必须先点击一下panel后,才能按下鼠标拖动,
如果直接拖曳则不灵,请教:如何不用先选中,而直接拖曳的办法。
谢谢
...全文
293 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Firing_Sky 2000-02-27
  • 打赏
  • 举报
回复
在Application.onmessage事件中将TreeView的SC_DragMove消息映射为Panel的SC_DragMove消息
happyZhouL 2000-02-25
  • 打赏
  • 举报
回复
如果PANEL中有一个TREEVIEW,如何将他们做为一个整体来拖曳。
谢谢
Firing_Sky 2000-02-25
  • 打赏
  • 举报
回复
试试这段代码

procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
SC_DragMove = $F012; { a magic number }begin ReleaseCapture;
panel1.perform(WM_SysCommand, SC_DragMove, 0);
end;
jll 2000-02-25
  • 打赏
  • 举报
回复
我猜:在Panel的MouseEnter事件中加入获得焦点的语句,如:SetFocus
Delphi 7 新概念百例》是一本通过讲解Delphi实例,来说明使用Delphi编程时通常采用的编程思路以及具体方法的计算机书籍。通过对每个实例从编程思路和代码实现的详细分析和讲解,力求带领读者快速地提高自己的程序设计水平,并达到举一反三的目的。很多实例的重要部分都做了特别注意和技巧等提示,目的是强调一些技巧的使用或使读者尽量避免一些常见的错误,以使更高效地利用Delphi这个强大的程序开发工具。  该书精选了100多个经典的实例从易到难、由浅入深、由简单到综合地进行讲解,内容涉及面也很广泛,基本上涵盖了用Delphi进行应用程序设计的方方面面,凝聚了作者多年的Delphi编程经验,相信对启发读者的思想并提高读者的编程水平台有很大帮助。  该书主要面向高级读者,但对那些熟悉Object Pascal语法并有一定编程经验的初级读者也很有帮助。本书也可以作为初涉Delphi的实例教材使用。  本文件是《Delphi 7 新概念百例》的配书源代码,包含编译好的可执行文件。内容如下:├─综合应用篇│ ├─87 用TreeView来显示数据库信息│ ├─86 显示彩色数据表格│ ├─85 文件切割器│ ├─84 加密解密器│ ├─83 TButton增加OnMouseLeave事件│ ├─82 将IE收藏夹导出为HTML文件│ ├─81 NT Win2000发送Winpop消息│ ├─80 制作无闪烁的动画│ ├─79 定制自己的幽灵程序│ ├─78 简单的文件查看器│ ├─77 简单的文件夹浏览器│ └─76 实现自己的控制面板├─练习提高篇│ ├─99 获取TRichEdit控件光标所在行号│ ├─98 获取内存信息│ ├─97 获取CPU 信息│ ├─96 获取Windows的版本│ ├─95 临时文件的操作│ ├─94 获取Windows和System目录│ ├─93 将窗体大小限定在一定范围内│ ├─92 闪烁窗口│ ├─91 在窗体客户区用鼠标拖曳窗体│ ├─90 使TMemo组件带边界│ ├─89 给ListBox控件增加水平滚动条│ ├─88 运行时拖动控件│ ├─104 防止程序或系统关闭│ ├─103 设置屏幕分辨率│ ├─102 获取系统和显卡的BIOS信息│ ├─101 使应用程序不出现在任务栏上│ └─100 隐藏或显示桌面上的图标└─基础实例篇 ├─8第八节 数据库技术 │ ├─75 通过注册表在程序增减和修改数据源 │ ├─74 获取BDE的配置信息 │ ├─73 动态建立和使用别名 │ │ ├─在程序动态地建立和使用别名(四) │ │ ├─在程序动态地建立和使用别名(二) │ │ ├─在程序动态地建立和使用别名(三) │ │ └─在程序动态地建立和使用别名(一) │ ├─72 自动检测、建立数据库别名和数据表 │ ├─71 用Delphi进行数据库之间转换 │ ├─70 图像数据的存取 │ ├─69 压缩、反删除dBase或FoxPro数据表 │ ├─68 处理数据库日期型字段的显示与输入 │ │ └─数据库 │ └─67 在数据库存取Word文档 ├─7第七节 网络编程 │ ├─66 动态更改DNS │ ├─65 网络资源树形浏览 │ ├─64 实现网络驱动器的映射和断开 │ ├─63 在网络邻居上得到某台机器的磁盘空间 │ ├─62 在网络邻居获取指定工作组内的所有计算机及其共享资源信息 │ ├─61 在WinNT-2000网络邻居获取所有的工作组 │ ├─60 计算机名与IP地址的互相获取 │ ├─59 实现Ping操作 │ ├─58 网页浏览器 │ └─57 获取本机机器名、IP信息以及网卡的MAC地址 ├─6第六节 多媒体技术 │ ├─56 实现图像之间的平滑过渡 │ ├─55 制作能播放Midi、Wav和Avi文件的播放器 │ ├─54 检测声卡是否安装 │ ├─53 获取Audio-CD的序列号 │ ├─52_关闭CD-ROM │ └─51 检测_设置CD-ROM是否自动运行 ├─5第五节 图像技术 │ ├─50 创建Jpeg图像的缩略图 │ ├─49 实现图像的翻转 │ ├─48 多种渐变色的实现 │ ├─47 TColor与RGB值的互相转换 │ ├─46 将文本转换成图像 │ ├─45 提高对位图象素的访问速度 │ ├─44 将彩色位图转换为灰度图 │ ├─43 将图像从jpg,ico,bmp,wmf格式转换为emf格式 │ ├─42 将图像从jpg,ico,emf,wmf格式转换为bmp格式 │ └─41 将图像从bmp格式转换为Jpg格式 ├─4第四节 VCL分析 │ ├─40 消除在TEdit控件按下回车键时的声音 │ ├─39 在StringGrid设置只读栏 │ ├─38 加速TTreeView控件的填充和清空 │ ├─37 加速TListBox控件的填充和清空 │ ├─36 在TStringGrid控件删除整行 │ ├─35 动态创建主菜单和菜单项 │ ├─34 使程序能在循环响应界面操作 │ ├─33 在TListbox、TCombobox实现自动搜索 │ ├─32 用剪贴板复制和粘贴图像 │ └─31 实现.dfm文件和.txt文件的互相转换 ├─3第三节 Shell研究 │ ├─30 为程序创建快捷方式 │ ├─29 获取Windows的若干特殊文件夹路径(二) │ ├─28 获取Windows的若干特殊文件夹路径(一) │ ├─27 抽取程序关联图标 │ ├─26 磁盘格式化的实现 │ ├─25 将文件加入“开始”菜单的“文档” │ ├─24 文件的拖放 │ ├─23 整个目录的复制、移动、删除 │ ├─22 将指定文件类型设置为与自己的应用程序相关联 │ └─21 文件的自动打开和超链接的实现 ├─2第二节 系统探秘 │ ├─20 操作INI文件 │ ├─19 获取驱动器类型信息 │ ├─18 在自己的程序关闭其它的程序 │ ├─17 使程序开机自动运行 │ ├─16 在自己的程序打开或关闭IE窗口 │ ├─15 模拟鼠标的行为 │ ├─14 限制光标的移动区域 │ ├─13 获取或更改计算机名 │ ├─12 运行程序的单实例 │ └─11 隐藏任务栏 └─1第一节 界面设计 ├─09 在系统菜单上添加自定义菜单项 ├─08 使窗体始终最大化 ├─07 使窗体始终最小化 ├─06 为窗体创建动画光标 ├─05 制作始终位于最上层的窗体 ├─04 制作带背景窗体 ├─03 制作圆形窗体 ├─02 制作无标题栏窗体 ├─10 给窗体边框“镶边” └─01 制作不可移动的窗体

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧