弄一个图片,里面画个黑框,和button一样大,放在image里,拖到button上
onMouseDown时
image1.visible:=true;
button1.visible:=false;
onMouseUp时相反

解决方案 »

  1.   

    具体情况是:  
           当选中按钮时,显示该按钮的区域框,显示区域框后可拖动按钮,也通过区域框可改变按钮的大小! 如:DELPHI窗体设计时,增加一个按钮后可改变按钮的位置,也可拖动按钮!!!,请教各位如何在程序中实现??????
      

  2.   

    具体情况是:  
           当选中按钮时,显示该按钮的区域框,显示区域框后可拖动按钮,也通过区域框可改变按钮的大小! 如:DELPHI窗体设计时,增加一个按钮后可改变按钮的大小,也可拖动按钮!!!,请教各位如何在程序中实现??????
      

  3.   

    //==============================================================================
    //运行期拖动一个控件************************************************************
    //==============================================================================
    procedure DragControl(WinControl: TWincontrol);
    const SC_DRAGMOVE = $F012;
    begin
      ReleaseCapture;
      WinControl.Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);
    end;
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    onMouseMove
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    procedure TForm_Main.MoveWinControl(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    begin
      DragControl(Sender as TWinControl);
    end;
      

  4.   

    1)把按钮拖着跑我会如下:
    var
      Form1: TForm1;
      OldPos,CurrentPos:TPoint;
      IsLeftDown:Boolean;
    implementation
    {$R *.DFM}
    procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      OldPos.x:=X;
      OldPos.y:=Y;
      if Button=mbLeft then
        IsLeftDown:=True;
    end;
    procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      if IsLeftDown then
      begin
        CurrentPos.x:=X;
        CurrentPos.y:=Y;
        Button1.Left:=CurrentPos.x-oldPos.x+Button1.Left;
        Button1.Top:=CurrentPos.y-OldPos.y+Button1.Top ;
      end;
    end;
    procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      IsLeftDown:=False;
    end;
    2)调整大小我没有把握,不过我想应该可以实现的
      

  5.   

    哦这个我以前听人说过,也是说delphi的空件都有个黑边,当时有人说是花上去的,我想你看看button空件的源码吧