我想问当将窗体的边框隐藏后,如何可以当在窗体范围内按住鼠标可以随意拖动该窗体,寻求代码,先谢谢了。

解决方案 »

  1.   

    procedure TMain_form.Image10MouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    begin
      inherited;
      FX := Mouse.CursorPos.X;
      FY := Mouse.CursorPos.Y;
      Timer1.Enabled := True;
    end;procedure TMain_form.Image10MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      inherited;
      Timer1.Enabled := False;  
    end;procedure TMain_form.Timer1Timer(Sender: TObject);
    begin
      if (FLeft <> Self.Left) and (FTop <> Self.Top) then
        begin
          Self.Left := Self.Left + (Mouse.CursorPos.X - FX);
          Self.Top := Self.Top + (Mouse.CursorPos.Y - FY);
          FX := Mouse.CursorPos.X ;
          FY := Mouse.CursorPos.Y ;
        end;
    end;把窗体边成bsnone,然后放一个图片模仿标题,上面事件,如果你要按住窗体的话,onmouseDown和Onmouseup就直接写在窗体的里面好了
    Fx,Fy不是局部变量,必须是窗体变量或者是全局变量
      

  2.   

    试验成功!
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm1 = class(TForm)
      private
        { Private declarations }
      public
        { Public declarations }
        procedure WmNCHitTest(var Msg: TMessage); message WM_NCHITTEST;
      end;var
      Form1: TForm1;implementation{$R *.dfm}{ TForm1 }procedure TForm1.WmNCHitTest(var Msg: TMessage);
    begin
      Inherited;
      if Msg.Result = HTCLIENT then
        Msg.Result := HTCAPTION;
    end;end.
      

  3.   

    楼上的是可以,能实现WINDOW一样,拖动的时候出现边框,然后放下的时候窗体过去,我的可以实现,拖一点移动一点