用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心编程技巧Delphi

用鼠标拖动无标题窗口

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-16 20:00:49

编程的时候,有时为了需要,会将窗体的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.0Win98 SE中测试通过。

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:20,437.50000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号