我想实现如下效果1。在image上输出透明的文字,并且在文字的周围有6个点
2。拖动这些点,可以改变文字的大小
3。当6个点存在时,可以拖动文字位置
4。点击文字外的地方,6个点消失,文字无法拖动和改变大小,固定在图像上
5。打印图像时,文字和图像都可以打印出来

解决方案 »

  1.   

    最简单的方法再加一个image,然后在这个image上canvas.textout6个点就是在image边上画六个就行了拖动就不说了,跟拖动image一个道理打印前合并一下图层就OK了
      

  2.   

    图层只是一个叫法还要自己实现的比如说用image代替或者自己写一个能画图的类
      

  3.   

    blfriend_2000() 说的帖子我怎么找不到啊?
      

  4.   

    http://community.csdn.net/Expert/topic/3699/3699217.xml?temp=.599148
      

  5.   

    image上面放一个label,设置这个label的状态为设计期,它就能被你在运行的时候托来脱去了。
      

  6.   

    放个label打印怎么办?label只能显示字符,我想画个图怎么办?
      

  7.   

    label状态设置设计期?在哪里设置呢?
      

  8.   

    procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
      MousePos: TPoint; var Handled: Boolean);
    begin
    label1.Font.Size:=label1.Font.Size+1;
    end;procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
      MousePos: TPoint; var Handled: Boolean);
    begin
    label1.Font.Size:=label1.Font.Size-1;
    end;procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
    oldx:=x;oldy:=y;
    end;procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
    if ssleft in shift then
    begin
      label1.Top:=label1.Top+y-oldy;
      label1.Left:=label1.Left+x-oldx;
    end;
    end;
      

  9.   

    好好去学习一下,图形学,和Canvas方面的编程吧!自己写控件呀!