说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

制作可移动的窗体的MovePanel控件-Delphi资料

HTML文档下载 WORD文档下载 PDF文档下载
制作可移动的窗体的MovePanel控件-Delphi资料

---- 使用Winamp是有个EasyMove的功能,也就是不在标题栏上拖动鼠标就能移动窗体,虽然EasyMove功能很好实现,可还不如做个控件一劳永逸,另外这个控件还有一个更有用的功能,呆会儿就能见到。我们先看看如何实现它吧!

---- 建立一个空的Unit,把以下代码Copy进去,再把它添加到Delphi的控件库里,这样MovePanel控件就做好了。

unit MovePanel;

interface

uses

Windows

Classes

Controls

ExtCtrls;

type

TMovePanel = class(TPanel) //这个控件是继承Tpanel类的

private

PrePoint:TPoint;

Down:Boolean;

{ Private declarations }

protected

{ Protected declarations }

public

constructor Create(AOwner:TComponent);

override;

//重载鼠标事件,抢先处理消息

procedure MouseDown(Button: TMouseButton;

Shift: TShiftState; X

Y: Integer);override;

procedure MouseUp(Button: TMouseButton;

Shift: TShiftState; X

Y: Integer);override;

procedure MouseMove(Shift: TShiftState;

X

Y: Integer);override;

{ Public declarations }

published

{ Published declarations }

end;

procedure Register;

implementation

constructor TMovePanel.Create(AOwner:TComponent);

begin

inherited Create(AOwner); //继承父类的Create方法

end;

procedure TMovePanel.MouseDown(Button:

TMouseButton; Shift: TShiftState; X

Y: Integer);

begin

if (Button=MBLeft) then

begin

Down:=true;

GetCursorPos(PrePoint);

end;

//如果方法已存在,就触发相应事件去调用它,

若不加此语句会造成访存异常

if assigned(OnMouseDown) then

OnMouseDown(self

Button

shift

x

y);

end;

procedure TMovePanel.MouseUp(Button:

TMouseButton; Shift: TShiftState; X

Y: Integer);

begin

if (Button=MBLeft) and Down then

Down:=False;

if assigned(OnMouseUp) then

OnMouseUp(Self

Button

shift

X

y);

end;

procedure TMovePanel.MouseMove(Shift:

TShiftState; X

Y: Integer);

Var

NowPoint:TPoint;

begin

if down then

begin

GetCursorPos(nowPoint);

//self.Parent在Form中就是MovePanel所在的窗体,

或是MovePanel所在的容器像Panel

self.Parent.Left:=self.Parent.left

+NowPoint.x-PrePoint.x;

self.parent.Top:=self.Parent.Top

+NowPoint.y-PrePoint.y;

PrePoint:=NowPoint;

end;

if Assigned(OnMouseMove) then

OnMouseMove(self

Shift

X

y);

end;

procedure Register;

begin

RegisterComponents('Md3'

[TMovePanel]);

end;

end.

---- 接下来,看看怎么用它吧。

---- 用法一:拖一个Form下来,加上我们的MovePanel,Align属性设为alClient,运行一下,移动窗体的效果还不错吧!想取消此功能,把MovePanel的Enabled属性设为False即可,简单吧!

---- 用法二:拖一个Form下来,加上普通的Panel,调整好大小,再在Panel上加上我们的MovePanel

Align属性设为alClient,运行一下,这一次在我们拖动MovePanel时不是窗体在移动,而是Panel和MovePanel一起在窗体上移动,如果我们再把其他的控件放在MovePanel上,就成了可以在窗体上任意移动的控件了,就这么简单!

利用Delphi实现支持窗体的自定义函数 轻轻松松在DELPHI3.0中实现三态按钮 全部窗体可使用鼠标移动-Delphi资料 让按钮连续工作--兼谈Delphi元件开发 让彩色光标出现在Delphi程序中 让彩色光标出现在程序中-Delphi资料 在Windows桌面的任务栏上有一个凹陷的区域,其中显示着系统时钟以及一些图标,这个长方形的区域便 如何使用Show方法来显示一个模态窗口-Delphi资料 如何旋转字体-Delphi资料 如何隐藏和显示Windows的任务条-Delphi资料 如何在DELPHI界面上运行可执行文件 设计Form时的快捷键-Delphi资料 生成非矩形窗口-Delphi资料 时隐时现的鼠标-Delphi资料 无标题窗口的移动-Delphi资料 应用程序敏感键的实现-Delphi资料 用Delphi 4.0 设 计 新 型 界 面 用Delphi 实 现 自定 义 颜 色 对 话 框 及 其 构 件 用Delphi 实现自定义颜色对话框及其构件 用Delphi4实现风Word97风格的工具栏 用Delphi 开 发windows 屏 幕 保 护 预 览 程 序 用Delphi设置墙纸 用DELPHI实现无边界窗体的移动 用Delphi实现自定义颜色对话框及其构件 用DEPHI 3.0实现动画ABOUT窗口-Delphi资料 用鼠标拖动无标题窗口-Delphi资料 在Delphi编程中创建一个启动闪现窗口 在form中想用enter来代替tab,请问如何实现?-Delphi资料 在Listboxes中加背景图-Delphi资料 在Window右下角的添加图标-Delphi资料 在程序中使用自定义的鼠标-Delphi资料 win2000的怪问题 快救救我!!!!!!!!!!!!!!! 一个关于c++builder的ado的问题! PACK6是不是有问题? MFC程序的结构问题? 一个酷似chinaasp的社区,需要你的支持。嘿……实在做得很好,送分!!!随便给朋友做做广告 7:30之前一定要交。。。。急。。。。!!!! 文件改名用哪个函数啊? 为什么我的windows2000pro共享文件不能访问????? 在VB.Net中的TabControl有一个OwnerDraw的功能,但不知到如何才能将上面的Item画成有曲线的 一个程序员的路是怎样开始的?我该选择VB还是C语言? 那里有动态加载控件的文章??? 哪位高手告知学习C++/VC++的步骤和各阶段应看的书。 湖北的有查到分数的没有,怎么查,我天天晚上做恶梦,救救我! 能否请高手指教关于开在开机时屏蔽热键的问题(del+alt+ctrl)?高分送上! 请教语音卡高手:并线录音和串线录音有何不同?电压驱动和话音驱动有什么不同? 一个时钟周期是多长时间? 请问各位谁做过(正在做)用MODEM来录电话语音的?进来打个招呼,探讨探讨。 有人用过CIPAddressCtrl这个控件吗?怎么用?为什么MSDN上说它有一个GetAddress的方法,但我在使用中却找不到这个方法? 请问广东省的高程成绩在哪儿查询,怎样才可以查询到呀???? 运行时的这个异常提示,什么意思?如何解决 关于数据库的一个问题 tmd.江西的软考办的人吃虱去了。 各位大哥:如果在使用的时候,字体变大,是什么原因?有什么办法跟踪吗? 救命啊。。。。。。。高手该出手拉。。 可不可以在一个树控件中的一个节点下面再加另外一个结控件?怎么搞? a question about form evaluation about form evaluation 她现在就睡在我的身边,她长的很丑,大脑袋,小眼睛、身子特长腿特短,简直是一无是处,还让我守护着她睡觉,TMD我比死了还难受,好痛苦啊。。。。。。 在excel2000中,如何在单元格中画对角线(就是常见的表头)? 如何使win98登录WIN2K server中? 各位大哥,请问怎样汉化C++Builder中的英文提示框(祥见内容部分)?谢谢! 请问怎么在sqlserver的用户子定义中是用循环啊! 真奇怪,我只是想通过accept得到的sockaddr_in来得到的IP再用gethostbyaddr得到主机名,但是死循环,请我看看错在哪里?我给分的 quickrep建立的报表,一对多表如何设置,为什么我设置报表的dataset属性为从表时,预览出现主表数据无法显示出现unkown错误,而从表可以。 怎样让“星际”通过代理服务器上网? oracle优化 用ADO控件操作数据库,对于关键字重复错误如何捕获? 深圳的朋友,有没有人知道深大通信(深大电话)? 急!!!!!!!!怎样将excel导入数据库(access),重要的是要能在修改后返回excel?而且excel表中的几张表的表头格式不一样? 考考你的UNIX/C 请问server.htmlencode()有什么用处?? 喜欢听白桦林吗? 不好意思,问个问题! 请问如何在下拉框中添加图片?有重谢! 50元找一控件.(在Delphi中怎样把JPG文件插入到SQL Server数据库的Image字段中) 偶想做pb的登录界面,就是填入正确的密码账号方可使用软件,偶把主创体设为mdi frame,登录子窗体为response,但是运行后,不登录子窗体,主窗体也能使用(菜单有响应),怎么版?另外,子窗体右上方的 x 键怎么去掉?//牛虻 在一个页面里调用两个存储过程,并对其中一个存储过程的记录来控制分页显示,请问如何实现 请问在VIEW,APP类和FRAME类中都能接收相同菜单的消息,如newfile?谢了大侠们 linux菜鸟询问小问题,希望回答! DataGrid中的值编写入网页 有电路的叠加定理知道,使用叠加定理时,不作用的电压电流源都置零其中电压源处用短路代替,电流源处用开路代替.好了,那么是否意味着电流源所在支路就被视为断开了? 这个虫子是蜱虫吗? 数字压力传感器一般多少钱? 电路叠加定理电压源为什么置零,电流源为什么开路我想知道原理,有例子说明就更好了 这是什么虫子? 求推荐一款数字压力传感器,质量和价格都能接受的? 叠加定理适用于线性电路,电压,电流和功率均可叠加.理由 请问下这是什么虫子,一厘米左右,六条腿,前面有对夹子. 数字压力传感器哪些牌子比较好? 蚊香有毒吗,睡觉的时候经常用蚊香好吗 1小时是什么数 计数 测量 数字压力传感器Maxair的怎么样? 如果蚊香有毒,那是什么毒,每晚睡觉时点蚊香会对身体有什么伤害? 发电机发出的是电压还是电流 只要电路两端有电压电路中就一定有电流,这句话错在哪里恩 电热蚊香片有毒吗 数字定时器的设计!要求用数字电路实现,定时最大为2小时,最小为1分钟. 关于电压下列说法正确的是 A电路两端有电压,电路中就一定有电流 B电路中无电流,电路两端就一定无电压C电路两端必须有电压,才可能有电流D电路中有无电流,与电压无关【说明理由】 什么是红外,红外的原理是什么? 电压控制的电压源和电流控制的电路原在都表达成电压么?如图 关于电流,电压和电阻,下列说法正确的是 A只要导体接入电路,电路中就有电流关于电流、电压和电阻,下列说法正确的是 【 】 A. 只要将导体连入电路,电路中就有电流 B. 红外线的原理有多少说多少,越多越好 msp430 定时器 连续计数模式在连续计数模式下能改初值吗?tar,试验起来感觉能改但改的效果不对呢.书上的意思不是很明确. 在并联电路中,有关电压和电流的说法正确的是A各支路两端电压相等,通过各支路的电流相等B各支路两端电压不一定相等,通过各支路的电流相等C各支路两端电压相等,通过各支路的电流不一定 谁能告诉我红外测距原理及应用具体是怎样的? 数字定时器设计基本要求:60分可以定时显示现在定时的时间高级要求:40分可以倒记时 怎样可以令生物柴油不容易燃烧 为什么红外线有热效应?求原理! 清洁能源包括哪些 生物柴油在空气中燃烧的两种产物是 什么是大陆文明?什么是海洋文明? 清洁能源有哪些?氢能源算吗? 生物柴油完全燃烧的两种主要产物拜托了各位 黑格尔认为大陆文明和海洋文明存在着哪儿些不同 使用绿色能源有哪些好处 被蚂蜂蜇了怎么办? 蚊香是不是有毒? 绿色能源有哪些 一个覆灭的文明和物种 地球人类.人类至今以经灭亡一万三千年了我们来到地球,为一个智慧文明的覆灭而深感遗憾,在整个人类文明的后期历史中 什么是马克思利率理论? 关于此电路图中串联并联各电压电流之间的关系 1.我不太明白4个电阻之间的串并联关系,如何看出此图哪个电阻是并哪个电阻是串的方法? 2.r1上的电流900mA 9V和r2,r3,r4上的电流300mA,3V是怎么计 人类会是地球上从诞生到消失时间最短的物种吗?人类的文明才不过千年,为什么反映出的各类毁灭危机几乎全在与人类创造出的必然结果.人是不是不如猪啊? 为什么以马克思主义为理论基础 探究海洋文明与大河文明各有何特点 人类会是地球最完美的物种吗?未来的几百年人类数量还会增多N倍.地球物种总数未来100年减少1倍.大多是人为因素.我想知道人类未来是毁灭于自然天灾.还是自己呢? 马克思主义根本的理论特征表现在哪些方面 海洋文明与大河文明的区别 霍尔效应传感器输出数字电压信号,当金属片进入磁隙中时,其输出的电压信号从____V变为___V;而当金属片离开磁隙时,输出电压信号从___V变为____V.难道这问题没有人知道? 如题,马克思主义普遍原理是什么 探究海洋文明与大河文明的特点 电位计当角传感器怎么用啊,大概多大的电阻,得到的是电压信号嘛? 试题1 (6分)【108020】 温家宝总理曾在《人民日报》上发表了题为《仰望星空》的诗文,这里的“仰望星空”其本来含义是指( ).A. 胸怀远大理想B. 前瞻性的思考未来C. 注重理论研究与创 与海洋文明相比,大河文明的突出特点是拜托各位大神与海洋文明相比,大河文明的突出特点是 A,形成了发达的农耕文明 B,工商业极为发达 C,发展更快,长期领先 D,创造了辉煌灿烂的文化 求汽车各传感器标准电压电阻1请问大家汽车的空气流量传感器和进气压力传感器,节气门位置传感器,曲轴位置传感器,凸轮轴位置传感器,用万能表测量它们的电压值和电阻值的正常范围是多 从理论基础的角度看,中国梦体现了马克思主义哲学的哪些原理在考试 电路如图所示,电流源的端电压U为多少? 海洋文明与大河文明 什么是哲学原理 海洋文明的性格特征是什么?高一第一学期历史内容:海洋文明 蜇人的小虫子家里从去年开始天花板上出现一些类似小蚂蚁的虫子,虫子屁股上有毒刺,一碰到人就蜇,然后起个红包,非常难受,现在每天用打杀虫剂,就从天花板上掉下好多,现在不知道用啥办法
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn