我现在放了一个Panel按钮在窗体上.如何在这个panel上自动创建按钮啊..并且可以拖动按钮的位置...

解决方案 »

  1.   

    放一个Panel在上面,为它写两个事件,
    还有一个可以动态生成BUTTON的按钮,代码如下:
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, StdCtrls;type
      TForm1 = class(TForm)
        Panel1: TPanel;
        Button1: TButton;
        procedure Panel1DragDrop(Sender, Source: TObject; X, Y: Integer);
        procedure Panel1DragOver(Sender, Source: TObject; X, Y: Integer;
          State: TDragState; var Accept: Boolean);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Panel1DragDrop(Sender, Source: TObject; X, Y: Integer);
    begin
      if (Source is TButton) then
      begin
        with Source as TButton do
        begin
          Left := X;
          Top := Y;
        end;
      end;
    end;procedure TForm1.Panel1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    begin
      if Source is TButton then Accept := True;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      with TButton.Create(Self) do
      begin
        Parent := Panel1;
        Top := Panel1.Top + 5;
        Left := Panel1.Left + 5;
        DragMode := dmAutomatic;
        Caption := 'Test';
      end;
    end;end.
      

  2.   

    ding-1楼!不过顺便跟楼主说一声,这些东西网上都有,上网一搜就可以看到控件拖拽的问题!多留意一下!