分享

用键盘方向键移动无边框窗体并用Esc键关闭窗体

 离魂异客 2012-08-09

{
功能:用键盘操作无边框窗体移动并关闭。
环境:delphi7+winxp3 通过测试
完成时间:18:09 2011-3-7
}

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    procedure FormCreate(Sender:TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  setkey:byte;//保存键盘数据

implementation

{$R *.dfm}
procedure TForm1.FormCreate(Sender:TObject);
begin
  Form1.KeyPreview:=True;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  close;
end;

//**********用键盘的方向键移动窗体******************
//要对窗体进行键盘操作时,不可以在窗体上放置可以获得焦点的控件,否则窗体无反应。
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key=VK_UP) then
    setkey:=1;
  if (Key=VK_Down) then
    setkey:=2;
  if (Key=VK_LEFT) then
    setkey:=3;
  if (Key=VK_RIGHT) then
    setkey:=4;
  if (Key=VK_ESCAPE) then
    Application.terminate;//用Esc键关闭窗体
  Case setkey of
    1:Form1.Top:=Form1.Top-10;
    2:Form1.Top:=Form1.Top+10;
    3:Form1.Left:=Form1.Left-10;
    4:Form1.Left:=Form1.Left+10;
  end;
end;

end.

 


------------------------------------------

运行结果截图:

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多