还有,如果控件和另一控件用线连着,如何让线也跟着跑?
有例子最好了
多谢了

解决方案 »

  1.   

    procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      ReleaseCapture;
      Edit1.Perform(WM_SYSCOMMAND,$f012,0);
    end;
      

  2.   

    Edit可以,如果是Label或是Image等其他控件呢?我放了一个Label1,不能拖
      

  3.   

    不要用Label,因为它没有句柄,无法发消息,用StaticText吧.
      

  4.   

    你让两个控件的相对位置不变不就可以了吗?
    比如在mousemove事件里加上label2.left:=label1.left+100;
    label2.top:=label1.top+100;label2是跟着label1跑的。
      

  5.   

    你应该如下处理(假定你的Image1放在Form1上,iOldX, iOldY为窗体变量):
    procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      iOldX := X;
      iOldY := Y;
      Image1.BeginDrag(true, 0);
    end;procedure TForm1.FormDragDrop(Sender, Source: TObject; X, Y: Integer);
    begin
      Image1.Left := X - iOldX;
      Image1.Top  := Y - iOldY;
      Image1.EndDrag(true);
    end;procedure TForm1.Image1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    begin
      Accept := true;
    end;procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    begin
      Accept := true;
    end;是image的例子,其他控件也是一样的