我在form1上动态创建了一个button1 怎样在程序运行的时候可以托动 button1来改变button1的位置???

解决方案 »

  1.   

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      with TButton.Create(Self) do begin
        Parent := Self;
        OnMouseDown := ButtonMouseDown;
        Caption := '测试看看,这方法很古老';
      end;
    end;procedure TForm1.ButtonMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      ReleaseCapture;
      TControl(Sender).Perform(WM_SYSCOMMAND, SC_MOVE or 1, 0);
    end;
      

  2.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TmyButton=class(tbutton)
      private
        procedure NcHitTest(var msg:tmessage);message wm_nchittest;
      end;  TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      with tmybutton.Create(self) do
      begin
        parent:=self;
        caption:= 'Haha, drag me';
      end;
    end;{ TmyButton }procedure TmyButton.NcHitTest(var msg: tmessage);
    begin
      msg.Result := HTCAPTION;
    end;
    end.
      

  3.   

    谢谢
    to: zswang(伴水)(流浪在北京), 你还是第一次回答我的问题, 多帮帮兄弟哦!!