[分享]移动窗体的小例子

jinzhili 2008-11-14 11:35:12

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormCreate(Sender: TObject);
procedure Label1DblClick(Sender: TObject);
procedure FormDblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

var Moving: boolean;
OldX, OldY, OldLeft, OldTop: integer;
{$R *.DFM}

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if (Button = mbLeft) then begin
Moving := True;
OldX := X;
OldY := Y;
OldLeft := X;
OldTop := Y;
end;

end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Moving := false
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if Moving then begin
OldX := X;
OldY := Y;
SetBounds( Left+OldX-OldLeft,
Top+OldY-OldTop,
Width,
Height);
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Moving := false;
end;

procedure TForm1.Label1DblClick(Sender: TObject);
begin
Close;
end;

procedure TForm1.FormDblClick(Sender: TObject);
begin
Close;
end;

end.

...全文
101 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
苁心開始 2008-12-08
  • 打赏
  • 举报
回复
所以,在我看来,很了不起,你.
苁心開始 2008-12-08
  • 打赏
  • 举报
回复
不过,对于一个不懂中文的人来说,当一个中国人能说出"我"(wo)的时候,那也是极了不起滴...
苁心開始 2008-12-08
  • 打赏
  • 举报
回复
什么呀,乱七八糟...
donet_delphi 2008-11-14
  • 打赏
  • 举报
回复
呵呵 顶起

5,392

社区成员

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

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