说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

动态创建了多个StaticText,我想实现将任意一个StaticText拖动到另一个StaticText上后交换他们的几个属性,该如何做?

编辑:说三道四文库 发布时间:2018-07-20 05:16
HTML文档下载 WORD文档下载 PDF文档下载
动态创建了多个StaticText,我想实现将任意一个StaticText拖动到另一个StaticText上后交换他们的几个属性,该如何做?
  我主要是想实现拖动构件交换他们的属性,而他们的位置不变。
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure StaticDragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure StaticDragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure FormCreate(Sender: TObject);
  private
    Static1, Static2, Static3: TStaticText;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}



procedure TForm1.StaticDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
 if (TStaticText(Sender).Name <> TStaticText(Source).Name) then
    TStaticText(Sender).Color := TStaticText(Source).Color;
end;

procedure TForm1.StaticDragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  if (TStaticText(Sender).Name <> TStaticText(Source).Name) then
    Accept := True;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Static1 := TStaticText.Create(Self);
  Static1.Name := 'S1';
  Static1.Parent := Self;
  Static1.Color := clRed;
  Static1.Left := 10;
  Static1.Top := 10;
  Static1.Width := 100;
  Static1.Height := 30;
  Static1.DragMode := dmAutomatic;
  Static1.OnDragDrop := StaticDragDrop;
  Static1.OnDragOver := StaticDragOver;

  Static2 := TStaticText.Create(Self);
  Static2.Name := 'S2';
  Static2.Parent := Self;
  Static2.Color := clGreen;
  Static2.Left := 10;
  Static2.Top := 60;
  Static2.Width := 100;
  Static2.Height := 30;
  Static2.DragMode := dmAutomatic;
  Static2.OnDragDrop := StaticDragDrop;
  Static2.OnDragOver := StaticDragOver;

  Static3 := TStaticText.Create(Self);
  Static3.Name := 'S3';
  Static3.Parent := Self;
  Static3.Color := clBlue;
  Static3.Left := 10;
  Static3.Top := 110;
  Static3.Width := 100;
  Static3.Height := 30;
  Static3.DragMode := dmAutomatic;
  Static3.OnDragDrop := StaticDragDrop;
  Static3.OnDragOver := StaticDragOver;
end;
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘