要做一应用程序,
实现如下功能:
可以任意托动界面上的控件到新的位置
就象WORD中可以把工具栏从上边托到下边那样
用DELPHI如何实现呢?
先谢了

解决方案 »

  1.   

    有这样的工具栏组件。在www.51delphi.com下载。 toolbar2000
      

  2.   

    多谢:楼上的
    还有:
    delphi 中自带的toolbar 可以吗?
    我在toolbar上加上了MEMO等控件,可是只能在顶部啊。可行吗
      

  3.   

    可以看一下,delphi5\demos\docking
    的例子,就是托动的.
      

  4.   

    unit test_move;
    interface
    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls, ExtCtrls;
    type
    TForm1 = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
    procedure Panel1DragOver(Sender, Source: TObject; X, Y: Integer;
    State: TDragState; var Accept: Boolean);
    procedure Label1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
    procedure Label1EndDrag(Sender, Target: TObject; X, Y: Integer);
    private
    { Private declarations }
    public
    { Public declarations }
    x_panel,y_panel,x_label,y_label:integer;
    end;
    var
    Form1: TForm1;
    implementation
    {$R *.DFM}
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    close;
    end;
    procedure FTorm1.Panel1MouseMove
    (Sender: TObject; Shift: TShiftState; 
    X,Y: Integer);
    begin
    x_panel:=X;
    y_panel:=Y;
    end;
    procedure TForm1.Panel1DragOver(Sender, Source: TObject; X, Y: Integer;
    State: TDragState; var Accept: Boolean);
    begin
    x_panel:=X;
    y_panel:=Y;
    end;
    procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState;
    X,Y: Integer);
    begin
    x_label:=X;
    y_label:=Y;
    end;
    procedure TForm1.Label1EndDrag(Sender, Target: TObject; X, Y: Integer);
    begin
    label1.left :=x_panel-x_label; 
    label1.top:=y_panel-y_label; 
    end;
    end.