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

制作可移动的窗体的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上,就成了可以在窗体上任意移动的控件了,就这么简单!

Dell:曾敦促微软WinRT放弃Windows品牌 IE10十大优点:渲染页面比Chrome快8% 法国电信:开放平台下的O2O移动产品怎么玩? 客如云创始人彭雷:寻找O2O“失落的半圆” 中国电信宋鹏飞:天翼开放平台的服务及架构解析 W3C小组宣布:HTML5标准制定完成 还记得DUQU吗?起因可能是Windows中存在了20多年的漏洞! API管理的五大规则 Google也节能:挖角美能源部Arun Majumdar博士 预测:云计算领域的5大变革 CTO俱乐部:移动信息化的创新实践及互联网创业 核心组图曝光:BlackBerry 10明年1月30日发布 “蛐蛐儿”创始人朱连兴:音频二维码的技术实现和应用场景 信恩科技创始人林兴陆:QR Code二维码的前世今生 2012移动开发工具盘点:傻瓜式游戏工具引擎 《福布斯》发布年度“未来之星” 扎克伯格上榜 Cloudera透露Impala发行版新功能及开源计划 Nokia落寞身影下 三星成为全球最大手机厂商 乐视网CTO:智能电视,一个诱人的议题 SeatGeek:Web设计师如何转型iOS开发? IE10支持HTML5标准拖放 IBM IT实践达人赛24强出炉 决赛圈比拼创新实践力 [简讯] Perl迎来25岁生日 软件开发者最重要的四大技能 为什么说惠普、戴尔和IBM在互联网发展中站错队 升级iOS 6还得看Google Maps 2012移动开发工具盘点:16大跨平台游戏引擎 GitHub Web游戏开发竞赛 获奖榜单出炉 Dart里程碑2发布 大幅提升dart2js性能 To Facebook:HTML5不好用?是你不会用! AWS推快照备份服务抵御宕机风险 靠谱吗? 指点!在PB中怎样用程序作成一张动态的交叉表 编辑控件怎样才能显示那些怪字符? 有没有人喜欢郑智化 大家推荐好听的几首歌吧! 请教:怎么学c++? 高手点拨! 各位网络高手.如何在程序里讲ip地址转化为域名 有什么方法,可使表单内的组件背景变成透明的而文字不透明,请看例子: 编辑控件怎样才能显示那些怪字符???? swall(壹心) 你还在深圳特区吗? 如何设置Session的密码?请高手指点迷经^^^^^ 哪位可以解释一下下面的代码? perl 的人气太差。罢了罢了。找本perl自己搞定 MsSQL7.0 当日志文件大小未限制而变得很大时,怎样清日志文件,使其减小? 请教诸位牛兄牛姐牛夫人---有难度哦(着急出活!) 基本问题:如何将一个.txt中的内容读入到内存再从内存中读出并存为另一个文件?谢了先!!!! 高手帮帮忙!!!!!!!!!!!!!! 又有台风了。。。。 在zip包中加入ASP推荐的PAD File有用吗????? PB连接SQL数数库,为什么显示的表会不全 如何把一个文件file.dat里的数据写入软盘0磁道0磁头1扇区. 我要骂人! chris2001(牛虻),不是东西 华为工程师 谁知道 vb 的序列号?????? VS.NET 有开了个新铺子。为什么我的ejb/j2ee还没有开张。气愤。 老大们:我是菜鸟,有问题要问,不过不要笑我。一定给分的 再次发问:关于在SQL SERVER中的某张表上建立触发器...... 没有有这样的病毒,或者文件 各位老大,如果有asp、sql基础学jsp和php是不是比较容易一些呀?言者有分哦! dll中怎样调用主程序中的函数? 新手请教接口聚合!!!!!!!!! 高分求教!有没有谁编写过WEB服务器程序? 微软OfficeXp女孩 请教一个报表问题? 小技巧!!! delphi中调用MessageBox出错,高手指点一下。 大家好,这是我提的第一个问题!我学DELPHI才两周!对您的指点,小弟万分感激! 请问sybase12。0中,游标能不能用动态sql申请 紧急求助:如何调用父对话框的函数 各位好,我在VB下做了一个ACTIVE 控件,但是加不到CBUILDER 上,但能加到VB里,为什么? 婚介所 关于C++打开文件的问题? 请教一下关于多表查询的问题 求助:中文Delhpi帮助 为什么我的rose装好后没有html帮助?还有安装时应该选择client还是administrator? cathy0505;chenkane;zhangshicun;swall;(_2_);riluo;wt13;MonkeyLin;seedundersnow;qancy_chen;cathy0505;acute 一个很简单的问题,怎样把一个php字符串变量转为实型变量 用过2K/NT DDK的大侠:如何在2000的内核里编程向硬盘里写文件,如:写c:\a.txt到C上,给我一段代码? 我急需一个“医院生殖中心病历管理软件”,sbf2000@363.net 怎样在vb中用insert ,updata语句进行数据库操作?????????? ra和rm 及ram格式有何区别呢 管道压力表、真空压力表一般与何种阀门连接?现在有两种阀门Z43F-16C Q41F-16C 压力表一般和哪种阀门连接啊. 0.1mol的铜与足量的浓硫酸反应生成SO2的体积约为22.4 L 氢气为什么在测定1mol气体体积被选为被测气体 φ76的管道,压力0.5Mpa每分钟流多少方水 常温常压下 1mol二氧化硫的体积小于22.4l这句话正确,为什么 用化学反应气体体积测定仪测定1mol氢气的体积,实验数据记录如下:镁带质量为0.120g,注入10ml稀硫酸,液体量瓶的读数为130.0ml.则(1)该温度下,1mol氢气的体积测定值为___ 管道φ219,压力0.4-0.5MPa流量150m3/h需提高压力1.0mpa用多大管道增压泵 在20度温度下,压强为101kpa时1mol的氧气和1mol的二氧化碳为什么所含的分子数相等?不是2和3吗? 用化学反应气体体积测定仪测定1mol H2体积时,向气体发生器加料口注射稀硫酸后,拔出注射器时针头脱落而仍然扎在橡皮塞上,使结果偏大还是偏小?为什么? 给水管道试验压力是如何确定说明其合格标准 1mol氢气和0.5mol氧气在相同状况下混合,求混合气体中氢气的体积分数,物质的量分数和质量分数 测定1mol气体的体积误差分析请给我这个实验所有可能的误差分析,怎样怎样做使结果偏小、怎样怎样做使结果偏大,用这种形式给我写出来.认真回答, 请问进气管道压力5MPa 管子直径10毫米,忽略阻力,求1小时流量是多少?出口0.1MPa,空气,管道长度1米 同温同压下,分别为1mol的氢气和氧气,它们的〔 〕(A)质量相同,体积不同 (B)分子个数相同,质量不同 (C)体积相同,分子数不同 (D)体积相同,分子数也相同 为什么不是D? 求温度为27摄氏度时,一摩尔氧气具有多少内能?R=8.31J.MOL-1.K-1,注-1是次方 差压变送器测流量用的温压补偿公式设计温度和设计压力是怎么来的?有没有通用数值的?我们厂的煤气管道就是露天的,夏天最高有45度,冬天最低-5度吧.另外是不是说不同的管道这2个参数不同 下列物质中所含微粒物质的量最多的是A 3.01×10∧23个镁原子 B 1mol氮气 C 4克氢气 D 36克氧气 一瓶氧气由于被阳光照射,温度由27℃升高到54℃,则瓶内氧气压强增大为原来的几倍? 孔板流量计为什么要加压力补偿和温度补偿 标准状态下,1mol的水体积是多少?存在22.4升的水蒸气吗?化学里面的确是说标准状况下没水蒸气没错,但是物理题目里动不动就来个“标准状况下1mol的水蒸气体积是22.4升,请问此时水分子间的 在2L的的密闭容器中加入1mol氮气(N2),和3mol氢气(H2),发生N2+3H2=2NH3.在2s末时,测得容器中含有0.4mol的NH3,求该反应的化学反应速率,希望能有详解, 很多地方提到高压反应釜,到底承受多少压力才算是高压反应釜.有高压就有中压和低压吧,如何区分? 孔板流量计上的NM3是什么单位 1mol水的体积和1mol冰的体积哪个大 酯化反应釜操作压力问题我设计的反应釜酸酐进料压力0.1Mpa,醇进料压力i0.1Mpa,出料0.9Mpa.1.搅拌釜内操作压力是0.2Mpa还是0.9Mpa呢?2.夹套内用水蒸气加热,工作压力是该温度下水蒸气的饱和蒸汽压 谁讲一下跟孔板流量计相关的知识, 1. 1mol的二氧化碳和1mol的水在相同状态下体积一定相等吗? 1mol的二氧化碳和1mol的水在相同状态下体积一定相等吗?不同的气体,若体积不等,则它们所含的分子数一定不等吗? 搪瓷反应釜、搪玻璃反应釜的性能 请问孔板流量计的测量原理? 1mol的氧气、1mol的水和1mol的铁哪个体积大 压力反应釜正负压怎么做 孔板流量计安装条件孔板流量计(流量计油表)安装管道在安装的时候有没有什么条件 0.1mol氢气和0.1mol水所含的分子数相同,在标准状况占体积都约是2.24L ;0.1mol任何气体标况下V都是2.24L这两句话 哪句错了啊? 请说下理由 谢谢! 什么样的压力容器需要型式试验,搪玻璃反应釜需要吗?新容规上说蓄能器等需要做型式试验,这个等包括反应釜吗? 在标准状况下1mol任何气体的体积都是22.4L那么在标准状况下11.2L氢气中的分子数是多少个 葡萄糖发生加成反应? 带夹套的不锈钢反应釜是不是需要检测的压力容器?蒸汽加热,需要温度105 容器内为常压,所需蒸汽压力2公斤请提供解释或依据夹套内为水蒸气,容器内为水和肉(猪肉、牛肉或羊肉),它是低压 在标准状况下,1mol任何气体的体积都是22.4L.那么,在标准状况下,11.2L氢气中的分子数是几个 酯和氢气能否发生加成反应,条件是什么 搪瓷反应釜是几类压力容器 在标准状况下1moL水的体积是22. 葡萄糖与氢气反应的化学方程式 半管加热的反应釜是否属于压力容器? 标准状况下1mol的混合气体的体积怎么是22.4L.分子间有较大的间隔.像酒精和水一样混合了不是会体积减少么 1mol苯可以与多少摩尔氢气发生加成反应?还有,氧化铝和氧化铁是不是两性化合物? 甲醇对20号压力容器用钢材有没有腐蚀性? 是不是当1mol气体的体积为22.4L时,它就一定处在标况下麽?1mol水蒸气在标况下的体积是22. 1mol萘最多与几mol氢气发生加成反应 求一反应釜各管道连接图 标准状况下,1mol任何气体所占的体积为22.4L 在标况下,1mol任何体积所占的体积约为22.4L多了一个约,为什么不同的题目上都对 1mol有机物能与1mol氢气发生加成反应,产物是,此有机物的结构简式可能有? 压力表连在管道上,为什么压力表与管道连接处之间管道是弯成一个圆的样子 标况下,1mol三氧化硫的体积为22.4L 1mol苯乙烯与氢气完全发生加成反应需要几mol氢气啊苯环只有5个H啊,为什么还需要3mol, 管道压力表怎样装 1MOL SO2在20度 体积大于22.4L为什么是错的? 1mol维生素A分子最多可跟几mol氢气发生加成反应 请问有没有关于化工设备(比如精馏塔,反应釜,管道等)的国家标准可查? 这种说法对吗?1mol三氧化硫和1mol二氧化硫体积均为22.4L如题 下列测定常温下1mol氢气体积的操作中,使测定结果偏大的是()?A.装置接口处有气体漏出B.称好镁带后用砂皮擦去表面的氧化膜C.硫酸注入量不足10mL,使镁带有剩余D.计算液体体积时,液体量瓶
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn