Form上有 N 多个 Button,还有 N 个 Panel,怎样用最简单的编程实现拖拽任意一个 Button 到任意一个 Panel 中??如果每个控件都写代码那太麻烦了,求一个简单快捷的办法,请高手给支个招,谢谢。

解决方案 »

  1.   

    1.每个Button的DragMode都设为dmAutomatic;
    2.每个Panel的下面两个事件都指向同一个:
    procedure TForm1.Panel1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    begin
      Accept := Source is TButton;
    end;procedure TForm1.Panel1DragDrop(Sender, Source: TObject; X, Y: Integer);
    begin
      if Source is TButton then
      begin
        TButton(Source).Parent := TPanel(Sender);
        TButton(Source).Left := X;
        TButton(Source).Top := Y;
      end;
    end;