你是说用鼠标移动圆和着一段文字的位置吗,建议你用TImage控件

解决方案 »

  1.   

    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
     myshape:TShape;
     mytext:TLabel;
    begin
      myshape:=TShape.Create(self);
      with myshape do
        begin
           parent:=Form1;
           shape:=stCircle;
           DragMode:=dmAutomatic;
           DragKind:=dkDock;
           visible:=true;
        end;
      mytext:=TLabel.Create(self);
      with mytext do
        begin
          parent:=form1;
          autosize:=true;
          caption:='this is a label';
          DragMode:=dmAutomatic;
          DragKind:=dkDock;
          visible:=true;
        end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
       self.DockSite:=true;
    end;
    运行一下,看看符合不符合要求
      

  2.   

    Shape控件是最好的选择,用用吧。
      

  3.   

    如果你不想用控件实现1、全局变量
    var
      ywz:tpoint;
    在mousemove里
       Canvas.pen.mode:=pmxor;
       canvas.pen.color:=clred;
       Canvas.brush.style:=bsclear;
       Canvas.Ellipse(ywz.x-50,ywz.y-50,ywz.x+50,ywz.y+50);
       Canvas.Ellipse(x-50,y-50,x+50,y+50);
       ywx:=point(x,y);
    我只全了一个很小的测试,控制自己加2、要实现字体的移动,需要用的托屏位图。
      

  4.   

    naughtyboy(淘气男孩) 可以实现你的最简单的哪个要求了。
      

  5.   

    是画完图之后(Canvas.TextOut(10,10,'sdadsa');),用鼠标点击随便移动
      

  6.   

    其实你需要的矢量图形,可动态放大缩小,修改,我做过相关的程序。使用过两种方法:
     1、从SHAPE控件继承下一个新类,重新写它的PAINT方法,根据你的需要生成新的图形,再动态产生该控件即可,在该控件的鼠标事件中处理移动、放大等功能。
     2、使用TImage控件,处理鼠标消息、捕捉坐标位置与你记录的图形数据比较,发现捕捉到指定的图形即可处理该图形,一般矢量图形绘制多是采用此种方法。
      这两种方法我都成功地编出矢量图形绘图工具,觉得不错,应该能达到你的要求。
      

  7.   

    我有例子。
    mailto:[email protected]