随意拖动的窗体---菜鸟问题!
本人正在学DELPHI,看例题,但实现不了效果,望高手指点一二;)
题意:普通窗体只能按住标题才能拖动.那么如何通过窗体的客户区(client区)来实现窗体的拖动呢?答案如下:
[步骤一]在窗体声明中(Type语句后)加入如下事例:
procedure WMNCHitTest(var M:TWMNCHitTest); message wm_NCHitTest;
//估计无法执行与这一句有关!
[步骤二]在窗体的实现部分(Implement语句后)添加如下语句:
//工程文件名:dragwindow.dpr
procedure TForm1.WMNCHitTest(var M:TWMNCHitTest);
begin
inherited; {调用默认的事件处理程序}
if M.Result=htClient then M.Result:=htCaption;
{如果是在Client区让Windows认为是在Caption区}
end;
=================================================================
我编写的程序:
=================================================================
=================================================================
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm);
procedure WMNCHitTest(var M;TWMNCHitTest); message wm_NCHitTest;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
procedure tform1.WMCHitTest(var M: TWMNCHitTest);
BEGIN
inherited;
if M.Result = htClient then M.Result :=htcaption;
END;
{$R *.dfm}
end.
=================================================================
=================================================================
错误提示:
=================================================================
Build
[Error] Unit1.pas(11): Missing parameter type
[Error] Unit1.pas(11): Unknown directive: 'wm_NCHitTest'
[Error] Unit1.pas(13): Unknown directive: 'private'
[Error] Unit1.pas(15): Unknown directive: 'public'
[Error] Unit1.pas(17): 'IMPLEMENTATION' expected but ';' found
[Error] Unit1.pas(22): '.' expected but 'IMPLEMENTATION' found
[Error] Unit1.pas(11): Unsatisfied forward or external declaration: 'WMNCHitTest'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
=================================================================