program Project1;uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};{$R *.RES}begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Form1.Top:=2;
  Form1.Left:=2;
  Application.Run;
end.

解决方案 »

  1.   

    你这个固定位置是绝对的点阵位置,还是相对于屏幕的位置?
    在Create的时候,设置窗体的top,left属性。
      

  2.   

    不让窗体移动: 加个timer, 设interval=20
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      if left<>100 then left:=100;
      if top<>100 then top:=100;
    end;
    然后:  
    STLont: 我拉,
    Form1:  我跑回100,100, 
    STLont: 我又拉,拉...
    Form1:  我又跑回100,100, 我跑
    STLont: 我又拉,拉,拉...
    Form1:  我又跑回100,100, 我跑跑
    STLont: 我拉。。我不玩啦! 累!
    Form1:  我跑回100,100, 我跑嘿嘿! 怕了吧?
      

  3.   

    最简单的方法就是把FORM的标题栏去掉。这样的话鼠标就没地方可拖了。
    如果觉得不美观可以自己画一个,岂不是更好
      

  4.   

    拦截WM_NCHITTEST消息...
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type
      TForm1 = class(TForm)
      private
        { Private declarations }
        procedure WMNCHitTest(var msg:TMessage);message WM_NCHITTEST;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}{ TForm1 }procedure TForm1.WMNCHitTest(var msg: TMessage);
    begin
      inherited;
      Msg.Result:=HTCLIENT;
    end;end.
      

  5.   

    //转贴...........type
        TForm1 = class(TForm)
      private
        procedure WMPosChange(var Message: TWMWINDOWPOSCHANGING);
                  message WM_WINDOWPOSCHANGING; //  ...........//截获并处理窗口移动时的消息,使其不可移动...
    procedure Tform1.WMPosChange(var Message: TWMWINDOWPOSCHANGING);
    begin
      PWindowPos(TMessage(Message).lParam).Flags :=
      PWindowPos(TMessage(Message).lParam).Flags or 
      SWP_NOMOVE or SWP_NOSIZE;
    end;
      

  6.   

    顺便问一声:你是不是也不想别人改变窗体大小?如果是这样就在窗体属性中好好找找,只要简单的设置就会达到以下效果: 
    STLont: 我拉,
    Form1:  我跑回100,100, 
    STLont: 我又拉,拉...
    Form1:  我又跑回100,100, 我跑
    STLont: 我又拉,拉,拉...
    Form1:  我又跑回100,100, 我跑跑
    STLont: 我拉。。我不玩啦! 累!
    Form1:  我跑回100,100, 我跑嘿嘿! 怕了吧?