我需要在窗体上动态创建可自由拖动的控件,请问实现方法?有没有现成的类或组件。

解决方案 »

  1.   

    在Form中放一个Panel
    在Panel的OnMouseDown中写如下代码!
    procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      ReleaseCapture;
      SendMessage(Panel1.Handle, WM_SYSCOMMAND, $F012, 0);
    end;当然动态创建的控件要动态的付给相应的MouseDown处理过程
      

  2.   

    http://www.delphibox.com/article.asp?articleid=945
      

  3.   

    SC_CLOSE    $F060
    SC_CONTEXTHELP   $F180
    SC_DEFAULT  $F160
    SC_HOTKEY   $F150
    SC_HSCROLL  $F080
    SC_KEYMENU  $F100
    SC_MAXIMIZE $F030
    SC_MINIMIZE $F020
    SC_MONITORPOWER $F170
    SC_MOUSEMENU $F090
    SC_MOVE $F010
    SC_NEXTWINDOW $F040
    SC_PREVWINDOW $F050
    SC_RESTORE $F120
    SC_SCREENSAVE $F140
    SC_SIZE $F000
    SC_TASKLIST $F130
    SC_VSCROLL $F070没有好好看吧 hehe^^ 换个值就可以了
      

  4.   

    另外改变$F012的值会有很多别的功能
    $F001:改变控件的left大小
    $F002:改变控件的right大小
    $F003:改变控件的top大小
    $F004:改变控件的buttom大小
    $F007:控件左边放大缩小
    $F008:控件右边放大缩小
    $F009:动态移动控件