首页 | 互联网 | IT动态 | 网络设备 | 服务器 | IDC | 安全 | Cisco | Windows | Linux | Java | .Net | Oracle | CIW | 华为 | 专题
IT技术 | 网页设计 | 平面设计 | 电子书下载 | 教学视频 | 方案 | 数字网校 | 直播室 | 虚拟考场 | 面授培训 | 搜索 | 博客 | 沙龙 | 论坛
首页 | JAVA | C# | VB | VB.NET | C/C++ | delphi | 工程管理 | 其他语言 | 论坛
免费注册一站通帐号,参与直播、论坛、下载、博客、网摘、评论,展现我的风采!
您现在的位置: 中国IT实验室 >> 桌面开发 >> Delphi >> 文章正文
程序开发小技巧:用鼠标拖动无标题窗口
来源:中国IT实验室  时间:2007-4-5

  编程的时候,有时为了需要,会将窗体的BorderStyle设置为bsNone,即无标题窗体。但是这样一来,因为没有了标题栏,就无法拖动窗体了。其实,我们只需要用以下的方法,就可以实现平滑拖动窗体了。
  
  在OnMouseDown事件中加入
  
  OldX:=x;
  
  OldY:=u;
  
  在OnMouseMove事件中加入
  
  Form1.Left:=Form1.Left+x-Oldx;
  
  Form1.Top:=Form1.Top+y-Oldy;
  
  ##1源代码如下:
  
  unit Unit1;
  
  interface
  
  uses
  
  Windows, Messages,SysUtils, Classes,Graphics,Controls,Forms, Dialogs;
  
  type
  
  TForm1 = class(TForm)
  
  procedure FormMouseDown(Sender:TObject;Button:TMouseButton;
  
  Shift:TShiftState;X,Y,Integer);
  
  procedure FormMouseMove(Sender:TObject;Button:TMouseButton;
  
  Shift:TShiftState;X,Y,Integer);
  
  private
  
   {Private declarations} 
  
  public
  
  {Private declarations} 
  
  end;
  
  var
  
  Form1:TForm1;
  
  OldX,OldY:integer; //定义全局变量
  
  implementation
  
  {$R *.DFM}
  
  procedure TForm1.FormMouseDown(Sender:TObject;Button:TMouseButton;
  
  Shift:TShiftState;X,Y:Integer);
  
  begin
  
  OldX:=x;
  
  OldY:=y;
  
  end;
  
  procedure TForm1.FormMouseMove(Sender:TObject;Button:TMouseButton
  
  Shift:TShiftState;X,
  
  Y:Integer);
  
  begin
  
  if ssleft in shift then //按下鼠标左键
  
  begin
  
  Form1.Left:=Form1.Left+x-Oldx;
  
  Form1.Top:=Form1.Top+y-Oldy;
  
  end;
  
  end;
  
  end.
  
  注:以上代码在Delphi5.0、Win98 SE中测试通过。
【责编:Lili】

中国IT教育热线咨询

相关文章
Delphi初学者应小心的六大陷阱
VC开发多语言界面支持的简单方法
浅析JSP开发中的对象和范围属性
基于Delphi的异常处理技术探究
Delphi中用API实现在MSN的信息提示
利用C#实现标注式消息提示窗口
Delphi中"包"的妙用
如何用Delphi实现子目录级的文件查询
推荐文章
· 用C#创建COM对象
· IT管理十大失误及其对策
· VC中利用MFC设计绘图程序初步
· JAVA中对象创建和初始化过程
· C语言中的位域的使用
· 浅谈Java桌面应用程序开发
· C#的前途如何?
· 几种VC++数据库开发技术的相对比较
 精彩友情推荐
·锐捷交换机报价
·锐捷交换机
·锐捷网络网络交换机
·smc交换机
·smc交换机报价
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
最新更新 推荐文章
·Visual Basic 9.0隐式类型的局部…09-30
·JMX+J2SE5.0实现Web应用的安全管…09-30
·多线程、Socket技术及委托技术的…09-21
·Visual C#多线程参数传递浅析09-21
·浅谈Java中利用JCOM实现仿Excel编…09-21
·基于Java的界面布局DSL的设计与实…09-21
·Java开发中的事件驱动模型实例详…09-21
·并发工程原则应用到软件项目中09-06
·Delphi初学者应小心的六大陷阱09-06
·VC开发多语言界面支持的简单方法09-06
·用C#创建COM对象09-06
·用C#创建COM对象09-06
·IT管理十大失误及其对策08-30
·VC中利用MFC设计绘图程序初步08-23
·JAVA中对象创建和初始化过程08-23
·C语言中的位域的使用08-09
·浅谈Java桌面应用程序开发08-09
·C#的前途如何?08-02
·几种VC++数据库开发技术的相对比较07-12
·用Visual C#实现网络封包监视07-12
·VB.NET中的TextBox控件详解07-12
·VB.NET实现PC与掌上电脑PPC的双向通信07-05
  培训中心